31 lines
540 B
Go
31 lines
540 B
Go
|
|
package trade
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"time"
|
|||
|
|
|
|||
|
|
cache "github.com/patrickmn/go-cache"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
var MemCache *cache.Cache
|
|||
|
|
|
|||
|
|
func NewLock() {
|
|||
|
|
if MemCache != nil {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
MemCache = cache.New(5*time.Minute, 10*time.Minute)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 锁仓,可以采用MemCache,Redis,File等。
|
|||
|
|
func IsLock(symbol, side string) bool {
|
|||
|
|
lockKey := symbol + ":" + side
|
|||
|
|
_, found := MemCache.Get(lockKey)
|
|||
|
|
if found {
|
|||
|
|
return true
|
|||
|
|
}
|
|||
|
|
return false
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func SetLock(symbol, side string, duration int64) {
|
|||
|
|
MemCache.Set(symbol+":"+side, true, time.Duration(duration)*time.Second)
|
|||
|
|
}
|