game_sync/worldsrv/trascate_stop.go

53 lines
2.2 KiB
Go

package main
import (
"time"
"mongo.games.com/game/common"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/transact"
)
func init() {
transact.RegisteHandler(common.TransTypeStopServer, &transact.TransHanderWrapper{
OnExecuteWrapper: transact.OnExecuteWrapper(func(tNode *transact.TransNode, ud interface{}) transact.TransExeResult {
logger.Logger.Infof("StopApi start TransTypeStopServer OnExecuteWrapper %x", tNode.MyTnp.TId)
for _, s := range GameSessMgrSington.gates {
tnp := &transact.TransNodeParam{
Tt: common.TransTypeStopServer,
Ot: transact.TransOwnerType(s.srvType),
Oid: s.srvId,
AreaID: common.GetSelfAreaId(),
Tct: transact.TransactCommitPolicy_TwoPhase,
}
tNode.StartChildTrans(tnp, nil, time.Minute*5)
logger.Logger.Infof("StopApi start TransTypeStopServer StartChildTrans srvid:%v srvtype:%v", s.srvId, s.srvType)
}
for _, s := range GameSessMgrSington.servers {
tnp := &transact.TransNodeParam{
Tt: common.TransTypeStopServer,
Ot: transact.TransOwnerType(s.srvType),
Oid: s.srvId,
AreaID: common.GetSelfAreaId(),
Tct: transact.TransactCommitPolicy_TwoPhase,
}
tNode.StartChildTrans(tnp, nil, time.Minute*5)
logger.Logger.Infof("StopApi start TransTypeStopServer StartChildTrans srvid:%v srvtype:%v", s.srvId, s.srvType)
}
return transact.TransExeResult_Success
}),
OnCommitWrapper: transact.OnCommitWrapper(func(tNode *transact.TransNode) transact.TransExeResult {
logger.Logger.Infof("StopApi start TransTypeStopServer OnCommitWrapper ")
return transact.TransExeResult_Success
}),
OnRollBackWrapper: transact.OnRollBackWrapper(func(tNode *transact.TransNode) transact.TransExeResult {
logger.Logger.Info("StopApi start TransTypeStopServer OnRollBackWrapper")
return transact.TransExeResult_Success
}),
OnChildRespWrapper: transact.OnChildRespWrapper(func(tNode *transact.TransNode, hChild transact.TransNodeID, retCode int, ud interface{}) transact.TransExeResult {
logger.Logger.Infof("StopApi start TransTypeStopServer OnChildRespWrapper ret:%v childid:%x", retCode, hChild)
return transact.TransExeResult(retCode)
}),
})
}