|
|
@@ -10,6 +10,7 @@ import (
|
|
|
"pbx-api-gin/pkg/utils"
|
|
|
"sort"
|
|
|
"strings"
|
|
|
+ "sync"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
@@ -793,9 +794,14 @@ func ICPConfbridgeReinvite(confID, paType string) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+var waitMutex sync.Mutex
|
|
|
+
|
|
|
// 设置全局变量控制任务创建过程,避免被其他任务打乱任务创建过程
|
|
|
func WaitTaskCreate(task string, args ...string) { //arg1(task chan)
|
|
|
- utils.LoggerDebug.Printf("%s check task creating ..... ", task)
|
|
|
+ utils.LoggerDebug.Printf("%s check task creating ..... ,TaskCreating = %s", task, priority.TaskCreating)
|
|
|
+
|
|
|
+ waitMutex.Lock()
|
|
|
+ defer waitMutex.Unlock()
|
|
|
|
|
|
switch priority.TaskCreating {
|
|
|
case "C2C":
|
|
|
@@ -823,7 +829,7 @@ func WaitTaskCreate(task string, args ...string) { //arg1(task chan)
|
|
|
}
|
|
|
return
|
|
|
case "CPA":
|
|
|
- if task == "PA" || task == "C2C" {
|
|
|
+ if task == "PA" /*|| task == "C2C"*/ {
|
|
|
//获取正在创建的任务的优先级
|
|
|
priorityCPA := priority.GetPriorityByKey("CPA")
|
|
|
//获取将要创建的任务的优先级
|
|
|
@@ -880,12 +886,16 @@ func WaitTaskCreate(task string, args ...string) { //arg1(task chan)
|
|
|
}
|
|
|
}
|
|
|
return
|
|
|
- case "*":
|
|
|
+
|
|
|
+ default:
|
|
|
+ //utils.LoggerDebug.Printf("%s waiting trd=============previous task:%s creating ..... ", task, priority.TaskCreating)
|
|
|
+
|
|
|
for i := 0; i < 4; i++ {
|
|
|
if priority.TaskCreating != "" {
|
|
|
utils.LoggerDebug.Printf("%s waiting previous task:%s creating ..... ", task, priority.TaskCreating)
|
|
|
time.Sleep(time.Millisecond * 500)
|
|
|
} else {
|
|
|
+ utils.LoggerDebug.Printf("TaskCreating is nill, Set TaskCreating=%s", task)
|
|
|
priority.TaskCreating = task
|
|
|
return
|
|
|
}
|