|
@@ -11,12 +11,6 @@ import (
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
-var (
|
|
|
|
- client *monitor.Client
|
|
|
|
- ch = make(chan bool, 4)
|
|
|
|
- pollCount = 5
|
|
|
|
-)
|
|
|
|
-
|
|
|
|
func job() {
|
|
func job() {
|
|
log.Println("语音识别定时任务开始")
|
|
log.Println("语音识别定时任务开始")
|
|
credential := common.NewCredential(
|
|
credential := common.NewCredential(
|
|
@@ -26,17 +20,24 @@ func job() {
|
|
cpf := profile.NewClientProfile()
|
|
cpf := profile.NewClientProfile()
|
|
cpf.HttpProfile.Endpoint = "monitor.tencentcloudapi.com"
|
|
cpf.HttpProfile.Endpoint = "monitor.tencentcloudapi.com"
|
|
client, _ = monitor.NewClient(credential, "ap-shanghai", cpf)
|
|
client, _ = monitor.NewClient(credential, "ap-shanghai", cpf)
|
|
|
|
+ sql := `SELECT id,MonitorFilename FROM voice_record WHERE %s MonitorFilename <> '' AND ISNULL(callText) ORDER BY createTime DESC `
|
|
|
|
+ addSql := ``
|
|
|
|
+ if cfg.VoiceRecordId > 0 {
|
|
|
|
+ addSql = fmt.Sprintf("id > %d AND ", cfg.VoiceRecordId)
|
|
|
|
+ }
|
|
|
|
+ sql = fmt.Sprintf(sql, addSql)
|
|
TiDb.SelectByBath(cfg.Bath, func(l *[]map[string]interface{}) bool {
|
|
TiDb.SelectByBath(cfg.Bath, func(l *[]map[string]interface{}) bool {
|
|
if len(*l) > 0 {
|
|
if len(*l) > 0 {
|
|
- log.Println(fmt.Sprintf("此次处理数据量:%d", len(*l)))
|
|
|
|
|
|
+ cfg.VoiceRecordId = util.Int64All((*l)[0]["id"])
|
|
|
|
+ log.Println(fmt.Sprintf("此次处理数据量:%d,最大id:%d", len(*l), cfg.VoiceRecordId))
|
|
for _, v := range *l {
|
|
for _, v := range *l {
|
|
ch <- true
|
|
ch <- true
|
|
go FormatData(v)
|
|
go FormatData(v)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return true
|
|
return true
|
|
- }, `SELECT id,MonitorFilename FROM voice_record WHERE MonitorFilename <> '' AND ISNULL(callText) ORDER BY createTime DESC `) // 需要加where进行增量
|
|
|
|
- log.Println("语音识别定时任务结束")
|
|
|
|
|
|
+ }, sql) // 需要加where进行增量
|
|
|
|
+ log.Println("语音识别定时任务结束,id:", cfg.VoiceRecordId)
|
|
}
|
|
}
|
|
|
|
|
|
// FormatData 获取TaskId 并获取录音识别结果
|
|
// FormatData 获取TaskId 并获取录音识别结果
|
|
@@ -70,7 +71,7 @@ func FormatData(data map[string]interface{}) {
|
|
requests.TaskId = taskId
|
|
requests.TaskId = taskId
|
|
L:
|
|
L:
|
|
for {
|
|
for {
|
|
- if pollTime[recordId] > pollCount {
|
|
|
|
|
|
+ if pollTime[recordId] > cfg.PollCount {
|
|
//轮询大于pollCount,则跳出,防止死循环
|
|
//轮询大于pollCount,则跳出,防止死循环
|
|
break L
|
|
break L
|
|
}
|
|
}
|
|
@@ -87,10 +88,10 @@ L:
|
|
break L
|
|
break L
|
|
}
|
|
}
|
|
case "waiting":
|
|
case "waiting":
|
|
- time.Sleep(500 * time.Millisecond)
|
|
|
|
|
|
+ time.Sleep(time.Duration(cfg.WaitingTime) * time.Second)
|
|
continue L
|
|
continue L
|
|
case "doing":
|
|
case "doing":
|
|
- time.Sleep(200 * time.Millisecond)
|
|
|
|
|
|
+ time.Sleep(time.Duration(cfg.DoingTime) * time.Second)
|
|
continue L
|
|
continue L
|
|
case "failed":
|
|
case "failed":
|
|
if updateVoiceRecord(*r.Response.Data.ErrorMsg, recordId) {
|
|
if updateVoiceRecord(*r.Response.Data.ErrorMsg, recordId) {
|