private async Task <IServiceRemotingResponseMessage> HandleActorMethodDispatchAsync( IActorRemotingMessageHeaders messageHeaders, IServiceRemotingRequestMessageBody msgBody) { var startTime = DateTime.UtcNow; if (this.IsCancellationRequest(messageHeaders)) { await this.cancellationHelper.CancelRequestAsync( messageHeaders.InterfaceId, messageHeaders.MethodId, messageHeaders.InvocationId); return(null); } else { IServiceRemotingResponseMessageBody retVal; this.actorService.ActorManager.DiagnosticsEventManager.ActorRequestProcessingStart(); try { retVal = await this.cancellationHelper.DispatchRequest( messageHeaders.InterfaceId, messageHeaders.MethodId, messageHeaders.InvocationId, cancellationToken => this.OnDispatch(messageHeaders, msgBody, cancellationToken)); } finally { this.actorService.ActorManager.DiagnosticsEventManager.ActorRequestProcessingFinish(startTime); } return(new ServiceRemotingResponseMessage(null, retVal)); } }
public void HandleOneWayMessage(IServiceRemotingRequestMessage requestMessage) { IActorRemotingMessageHeaders actorHeaders = (IActorRemotingMessageHeaders)requestMessage.GetHeader(); ActorMethodDispatcherBase eventDispatcher; if ((this.eventIdToDispatchersMap == null) || (!this.eventIdToDispatchersMap.TryGetValue(actorHeaders.InterfaceId, out eventDispatcher))) { return; } SubscriptionInfo info; if (!this.subscriptionIdToInfoMap.TryGetValue(actorHeaders.ActorId.GetGuidId(), out info)) { return; } if (info.Subscriber.EventId != actorHeaders.InterfaceId) { return; } try { eventDispatcher.Dispatch(info.Subscriber.Instance, actorHeaders.MethodId, requestMessage.GetBody()); } catch { // ignored } }
private Task <IServiceRemotingResponseMessageBody> OnDispatch( IActorRemotingMessageHeaders actorMessageHeaders, IServiceRemotingRequestMessageBody requestBody, CancellationToken cancellationToken) { return(this.actorService.ActorManager .InvokeAsync( actorMessageHeaders.ActorId, actorMessageHeaders.InterfaceId, actorMessageHeaders.MethodId, actorMessageHeaders.CallContext, requestBody, this.GetRemotingMessageBodyFactory(), cancellationToken)); }
private async Task <IServiceRemotingResponseMessageBody> HandleActorMethodDispatchAsync( IActorRemotingMessageHeaders actorMessageHeaders, IServiceRemotingRequestMessageBody msgBody, CancellationToken cancellationToken) { var startTime = DateTime.UtcNow; IServiceRemotingResponseMessageBody retVal; this.actorService.ActorManager.DiagnosticsEventManager.ActorRequestProcessingStart(); try { retVal = await this.OnDispatch(actorMessageHeaders, msgBody, cancellationToken); } finally { this.actorService.ActorManager.DiagnosticsEventManager.ActorRequestProcessingFinish(startTime); } return(retVal); }