panic 捕捉

This commit is contained in:
meixiongfeng 2023-01-14 22:34:10 +08:00
parent 136d77cadf
commit 00e46fe1e9

View File

@ -15,6 +15,7 @@ import (
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db" "go_dreamfactory/sys/db"
"go_dreamfactory/utils" "go_dreamfactory/utils"
"runtime"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
@ -295,6 +296,14 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
module, err := this.service.GetModule(comm.ModuleWorldtask) module, err := this.service.GetModule(comm.ModuleWorldtask)
if err == nil { if err == nil {
go func() { go func() {
defer func() { //程序异常 收集异常信息传递给前端显示
if r := recover(); r != nil {
buf := make([]byte, 4096)
l := runtime.Stack(buf, false)
log.Errorf("[Handle Api] m:%s ", fmt.Sprintf("%v: %s", r, buf[:l]))
}
}()
// 世界任务 // 世界任务
if worldtask, ok := module.(comm.IWorldtask); ok { if worldtask, ok := module.(comm.IWorldtask); ok {
if err := worldtask.TaskcondNotify(session, conf.Id); err != nil { if err := worldtask.TaskcondNotify(session, conf.Id); err != nil {
@ -327,6 +336,13 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
userModule, err := this.service.GetModule(comm.ModuleUser) userModule, err := this.service.GetModule(comm.ModuleUser)
if err == nil { if err == nil {
go func() { go func() {
defer func() { //程序异常 收集异常信息传递给前端显示
if r := recover(); r != nil {
buf := make([]byte, 4096)
l := runtime.Stack(buf, false)
log.Errorf("[Handle Api] m:%s ", fmt.Sprintf("%v: %s", r, buf[:l]))
}
}()
// 公会 // 公会
if user, ok := userModule.(comm.IUser); ok { if user, ok := userModule.(comm.IUser); ok {
ex, err := user.GetUserExpand(session.GetUserId()) ex, err := user.GetUserExpand(session.GetUserId())