This commit is contained in:
2025-03-12 09:00:45 +08:00
parent aee6dd9883
commit 0352da5616
6 changed files with 57 additions and 24 deletions

View File

@ -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 {