|
|
@@ -192,15 +192,9 @@ namespace ET.Server
|
|
|
{
|
|
|
if (messageLocationSender.InstanceId != actorLocationSenderInstanceId)
|
|
|
{
|
|
|
- throw new RpcException(ErrorCore.ERR_MessageTimeout, $"{iRequest}");
|
|
|
+ throw new RpcException(ErrorCore.ERR_NotFoundActor, $"{iRequest}");
|
|
|
}
|
|
|
|
|
|
- // 队列中没处理的消息返回跟上个消息一样的报错
|
|
|
- if (messageLocationSender.Error == ErrorCore.ERR_NotFoundActor)
|
|
|
- {
|
|
|
- return MessageHelper.CreateResponse(iRequest, messageLocationSender.Error);
|
|
|
- }
|
|
|
-
|
|
|
try
|
|
|
{
|
|
|
return await self.CallInner(messageLocationSender, rpcId, iRequest);
|
|
|
@@ -239,7 +233,6 @@ namespace ET.Server
|
|
|
|
|
|
if (messageLocationSender.ActorId == default)
|
|
|
{
|
|
|
- messageLocationSender.Error = ErrorCore.ERR_NotFoundActor;
|
|
|
return MessageHelper.CreateResponse(iRequest, ErrorCore.ERR_NotFoundActor);
|
|
|
}
|
|
|
IResponse response = await root.GetComponent<MessageSender>().Call(messageLocationSender.ActorId, rpcId, iRequest, needException: false);
|
|
|
@@ -258,8 +251,9 @@ namespace ET.Server
|
|
|
if (failTimes > 20)
|
|
|
{
|
|
|
Log.Debug($"actor send message fail, actorid: {messageLocationSender.Id} {iRequest}");
|
|
|
- messageLocationSender.Error = ErrorCore.ERR_NotFoundActor;
|
|
|
- // 这里不能删除actor,要让后面等待发送的消息也返回ERR_NotFoundActor,直到超时删除
|
|
|
+
|
|
|
+ // 这里删除actor,后面等待发送的消息会判断InstanceId,InstanceId不一致返回ERR_NotFoundActor
|
|
|
+ self.Remove(messageLocationSender.Id);
|
|
|
return response;
|
|
|
}
|
|
|
|