public void InvokeUserMessageHandler(ConsumerExecutionContext context) { Preconditions.CheckNotNull(context, "context"); logger.DebugWrite("Received \n\tRoutingKey: '{0}'\n\tCorrelationId: '{1}'\n\tConsumerTag: '{2}'" + "\n\tDeliveryTag: {3}\n\tRedelivered: {4}", context.Info.RoutingKey, context.Properties.CorrelationId, context.Info.ConsumerTag, context.Info.DeliverTag, context.Info.Redelivered); Task completionTask; try { completionTask = context.UserHandler(context.Body, context.Properties, context.Info); } catch (Exception exception) { completionTask = TaskHelpers.FromException(exception); } if (completionTask.Status == TaskStatus.Created) { logger.ErrorWrite("Task returned from consumer callback is not started. ConsumerTag: '{0}'", context.Info.ConsumerTag); return; } completionTask.ContinueWith(task => DoAck(context, GetAckStrategy(context, task))); }
public void InvokeUserMessageHandler(ConsumerExecutionContext context) { Preconditions.CheckNotNull(context, "context"); logger.DebugWrite("Received \n\tRoutingKey: '{0}'\n\tCorrelationId: '{1}'\n\tConsumerTag: '{2}'" + "\n\tDeliveryTag: {3}\n\tRedelivered: {4}", context.Info.RoutingKey, context.Properties.CorrelationId, context.Info.ConsumerTag, context.Info.DeliverTag, context.Info.Redelivered); Task completionTask; try { completionTask = context.UserHandler(context.Body, context.Properties, context.Info); } catch (Exception exception) { completionTask = TaskHelpers.FromException(exception); } if (completionTask.Status == TaskStatus.Created) { logger.ErrorWrite("Task returned from consumer callback is not started. ConsumerTag: '{0}'", context.Info.ConsumerTag); return; } completionTask.ContinueWith(task => DoAck(context, GetAckStrategy(context, task))); }
private async Task <AckStrategy> InvokeUserMessageHandlerInternalAsync(ConsumerExecutionContext context) { try { try { await context.UserHandler(context.Body, context.Properties, context.Info).ConfigureAwait(false); } catch (OperationCanceledException) { return(consumerErrorStrategy.HandleConsumerCancelled(context)); } catch (Exception exception) { logger.Error( exception, "Exception thrown by subscription callback, receivedInfo={receivedInfo}, properties={properties}, message={message}", context.Info, context.Properties, Convert.ToBase64String(context.Body) ); return(consumerErrorStrategy.HandleConsumerError(context, exception)); } } catch (Exception exception) { logger.Error(exception, "Consumer error strategy has failed"); return(AckStrategies.NackWithRequeue); } return(AckStrategies.Ack); }
public virtual void InvokeUserMessageHandler(ConsumerExecutionContext context) { Preconditions.CheckNotNull(context, "context"); logger.DebugFormat("Received message with receivedInfo={receivedInfo}", context.Info); Task completionTask; try { completionTask = context.UserHandler(context.Body, context.Properties, context.Info); } catch (Exception exception) { completionTask = TaskHelpers.FromException(exception); } completionTask.ContinueWith(task => DoAck(context, GetAckStrategy(context, task))); }
public void InvokeUserMessageHandler(ConsumerExecutionContext context) { Preconditions.CheckNotNull(context, "context"); logger.DebugWrite("Received \n\tRoutingKey: '{0}'\n\tCorrelationId: '{1}'\n\tConsumerTag: '{2}'" + "\n\tDeliveryTag: {3}\n\tRedelivered: {4}", context.Info.RoutingKey, context.Properties.CorrelationId, context.Info.ConsumerTag, context.Info.DeliverTag, context.Info.Redelivered); try { var completionTask = context.UserHandler(context.Body, context.Properties, context.Info); if (completionTask.Status == TaskStatus.Created) { logger.ErrorWrite("Task returned from consumer callback is not started. ConsumerTag: '{0}'", context.Info.ConsumerTag); } else { completionTask.ContinueWith(task => { if (task.IsFaulted) { var exception = task.Exception; HandleErrorInSubscriptionHandler(context, exception); } else { DoAck(context, SuccessAckStrategy); } }); } } catch (Exception exception) { HandleErrorInSubscriptionHandler(context, exception); } }
public void InvokeUserMessageHandler(ConsumerExecutionContext context) { Preconditions.CheckNotNull(context, "context"); logger.DebugWrite("Recieved \n\tRoutingKey: '{0}'\n\tCorrelationId: '{1}'\n\tConsumerTag: '{2}'" + "\n\tDeliveryTag: {3}\n\tRedelivered: {4}", context.Info.RoutingKey, context.Properties.CorrelationId, context.Info.ConsumerTag, context.Info.DeliverTag, context.Info.Redelivered); try { var completionTask = context.UserHandler(context.Body, context.Properties, context.Info); if (completionTask.Status == TaskStatus.Created) { logger.ErrorWrite("Task returned from consumer callback is not started. ConsumerTag: '{0}'", context.Info.ConsumerTag); } else { completionTask.ContinueWith(task => { if (task.IsFaulted) { var exception = task.Exception; HandleErrorInSubscriptionHandler(context, exception); } else { DoAck(context, SuccessAckStrategy); } }); } } catch (Exception exception) { HandleErrorInSubscriptionHandler(context, exception); } }