Exemplo n.º 1
0
        private async Task <byte[]> RequestResponseActorMessageAsync(
            IServiceRemotingRequestContext requestContext,
            ServiceRemotingMessageHeaders messageHeaders,
            byte[] requestBody,
            ActorMessageHeaders actorMessageHeaders,
            CustomServiceRequestHeader customHeader)
        {
            var methodName = GetActorMethodName(actorMessageHeaders);

            byte[] result = null;
            using (new ServiceRequestContextWrapper(customHeader))
            {
                using (_logger?.RecieveActorMessage(_actorService.Context.ServiceName, methodName, actorMessageHeaders, customHeader))
                {
                    try
                    {
                        result = await _innerMessageHandler.RequestResponseAsync(requestContext, messageHeaders, requestBody);
                    }
                    catch (Exception ex)
                    {
                        _logger?.RecieveActorMessageFailed(_actorService.Context.ServiceName, methodName, actorMessageHeaders, customHeader, ex);
                        throw;
                    }
                }
            }
            return(result);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Handles a message from the client that requires a response from the service. It consumes the correlation id and
 /// context from the message headers, if any.
 /// </summary>
 /// <param name="requestContext">Request context - contains additional information about the request.</param>
 /// <param name="messageHeaders">Request message headers.</param>
 /// <param name="requestBody">Request message body</param>
 /// <returns></returns>
 public Task <byte[]> RequestResponseAsync(IServiceRemotingRequestContext requestContext, ServiceRemotingMessageHeaders messageHeaders, byte[] requestBody)
 {
     return(HandleAndTrackRequestAsync(messageHeaders, () => _innerHandler.RequestResponseAsync(requestContext, messageHeaders, requestBody)));
 }
Exemplo n.º 3
0
 public Task <byte[]> RequestResponseAsync(IServiceRemotingRequestContext requestContext, ServiceRemotingMessageHeaders messageHeaders, byte[] requestBody)
 {
     FabricTelemetryInitializerExtension.SetServiceCallContext(_context);
     return(_handler.RequestResponseAsync(requestContext, messageHeaders, requestBody));
 }