Browse Source

提交事务锁

master
娄文智 3 years ago
parent
commit
4f10054f3f
1 changed files with 12 additions and 3 deletions
  1. +12
    -3
      service/Workline.go

+ 12
- 3
service/Workline.go View File

@ -179,12 +179,12 @@ LOOP:
data := strings.Split(bl_wl.Worklinetab.Mixsortlogic, ";")
if len(data) >= 2 {
/* 获取锁 */
LOCK:
MixLOCK:
err = etcd.G_jobLock.TryLock("lock")
if err != nil {
fmt.Println("seq groutine lock fail!")
time.Sleep(10 * time.Millisecond)
goto LOCK
goto MixLOCK
}
//项目1
info1 := strings.Split(data[0], ":")
@ -220,6 +220,7 @@ LOOP:
etcd.G_jobLock.UnLock()
return
}
etcd.G_jobLock.UnLock()
//比较swet时间
if len(wotablst1) > 0 {
swet1 = wotablst1[0].Swet
@ -314,7 +315,6 @@ LOOP:
}
}
}
etcd.G_jobLock.UnLock()
} else if len(data) == 1{
//项目1
info1 := strings.Split(data[0], ":")
@ -357,10 +357,19 @@ LOOP:
//非混线逻辑
// 获取待下达任务数
// 非混线排序,则正常加载已计划未下达生产订单
/* 获取锁 */
LOCK:
err = etcd.G_jobLock.TryLock("lock")
if err != nil {
fmt.Println("seq groutine lock fail!")
time.Sleep(10 * time.Millisecond)
goto LOCK
}
if wotablst, err = bl_wl.GetLineTaskWorkorders(bl_wl.WorklineId, toRelQty); err != nil {
err = errors.New(fmt.Sprintf("Failed to load work order for workline: %s due to: %v", bl_wl.WorklineId, err))
return
}
etcd.G_jobLock.UnLock()
for i = 0; i < len(wotablst); i++ {
wotablst[i].Clipped()
bl_wo = BL_WorkOrder{}


Loading…
Cancel
Save