fix(fight): 修复战斗池提交逻辑并调整初始配置
调整了 Fightpool 的初始化参数以减少资源占用,并优化了战斗循环的提交逻辑, 避免在池满时出现未处理的错误。同时添加了上下文日志记录以便调试。
This commit is contained in:
@@ -2,11 +2,13 @@ package fight
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"blazing/common/utils"
|
"blazing/common/utils"
|
||||||
|
"blazing/cool"
|
||||||
"blazing/logic/service/common"
|
"blazing/logic/service/common"
|
||||||
"blazing/logic/service/fight/action"
|
"blazing/logic/service/fight/action"
|
||||||
"blazing/logic/service/fight/info"
|
"blazing/logic/service/fight/info"
|
||||||
"blazing/logic/service/fight/input"
|
"blazing/logic/service/fight/input"
|
||||||
"blazing/modules/blazing/model"
|
"blazing/modules/blazing/model"
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"reflect"
|
"reflect"
|
||||||
@@ -189,18 +191,21 @@ func NewFight(mode, status info.EnumBattleMode, p1 common.PlayerI, p2 common.Pla
|
|||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
i := Fightpool.Free()
|
||||||
|
if i <= 0 {
|
||||||
|
Fightpool.Tune(Fightpool.Cap() + 1)
|
||||||
|
cool.Loger.Error(context.Background(), "Fightpool is full")
|
||||||
|
|
||||||
defer func() {
|
}
|
||||||
rr := Fightpool.Submit(f.battleLoop)
|
rr := Fightpool.Submit(f.battleLoop)
|
||||||
if rr != nil {
|
if rr != nil {
|
||||||
panic(rr)
|
panic(rr)
|
||||||
}
|
}
|
||||||
f.Broadcast(func(ff *input.Input) {
|
f.Broadcast(func(ff *input.Input) {
|
||||||
|
|
||||||
ff.Player.SendNoteReadyToFightInfo(f.Info)
|
ff.Player.SendNoteReadyToFightInfo(f.Info)
|
||||||
|
|
||||||
})
|
})
|
||||||
}()
|
|
||||||
|
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,6 +158,6 @@ func (f *FightC) ReadyFight(c common.PlayerI) {
|
|||||||
var Fightpool *ants.MultiPool
|
var Fightpool *ants.MultiPool
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Fightpool, _ = ants.NewMultiPool(100, 10, ants.LeastTasks)
|
Fightpool, _ = ants.NewMultiPool(1, 1, ants.LeastTasks)
|
||||||
//defer p.Release()
|
//defer p.Release()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user