1
This commit is contained in:
@ -1,12 +1,14 @@
|
||||
package scriptservice
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/const/rediskey"
|
||||
"go-admin/common/helper"
|
||||
"go-admin/pkg/utility"
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
@ -33,13 +35,26 @@ func (receiver *PreOrder) AddOrder(orm *gorm.DB) {
|
||||
}
|
||||
|
||||
func workerWithLock(orm *gorm.DB, wg *sync.WaitGroup) {
|
||||
defer func() {
|
||||
wg.Done()
|
||||
}()
|
||||
scriptId, err := helper.DefaultRedis.LPopList(rediskey.PreOrderScriptList)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
defer func() {
|
||||
wg.Done()
|
||||
if r := recover(); r != nil {
|
||||
// 记录 Goroutine ID、panic 信息和堆栈
|
||||
err := string(debug.Stack())
|
||||
log.Error(fmt.Sprintf("Recovered from panic in Goroutine %s: %v\nStack Trace:\n%s", utility.GetGoroutineID(), r, err))
|
||||
|
||||
orm.Model(&models.LinePreScript{}).Where("id = ? ", scriptId).Updates(map[string]interface{}{
|
||||
"status": "1",
|
||||
"error": err,
|
||||
},
|
||||
)
|
||||
}
|
||||
}()
|
||||
|
||||
var scriptInfo models.LinePreScript
|
||||
err = orm.Model(&models.LinePreScript{}).Where("id = ? AND status = '0'", scriptId).Find(&scriptInfo).Error
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user