|
@@ -417,6 +417,35 @@ func (e *EnvItem) IncreAdjust(expire time.Duration) (int64, error) {
|
|
return intCmd.Val(), nil
|
|
return intCmd.Val(), nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// WaitValue 等待点位的值, 变为指定值
|
|
|
|
+// v: 等待的值
|
|
|
|
+// op: -1: 小于, 0: 等于, 1: 大于
|
|
|
|
+// interval: 轮询间隔
|
|
|
|
+// retry: 最多尝试次数 0: 表示不限制
|
|
|
|
+func (e *EnvItem) WaitValue(v string, op int, interval time.Duration, retry int) <-chan bool {
|
|
|
|
+ c := make(chan bool)
|
|
|
|
+ go func() {
|
|
|
|
+ t := 0
|
|
|
|
+ for {
|
|
|
|
+ val, _, err := e.getCurrentValue()
|
|
|
|
+ if err == nil && strings.Compare(v, val) == op {
|
|
|
|
+ c <- true
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if retry > 0 {
|
|
|
|
+ t += 1
|
|
|
|
+ if t >= retry {
|
|
|
|
+ c <- false
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ time.Sleep(interval)
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ return c
|
|
|
|
+}
|
|
|
|
+
|
|
func (e *EnvItem) ClearAdjust() {
|
|
func (e *EnvItem) ClearAdjust() {
|
|
if adjustValue == false {
|
|
if adjustValue == false {
|
|
return
|
|
return
|