public async Task HandleAsync(ConsumeChannel channel, object model, BasicDeliverEventArgs e) { ConsumeMessagingContext <TMessage> messagingContext = null; try { messagingContext = new ConsumeMessagingContext <TMessage>(channel, model, e, decodeMessage, _metadata); _logger.Debug("The Queue({0}) receive message! Message Data: {1}", _metadata.ConsumeOptions.Queue, ToStringMessageData(messagingContext.Data)); await HandleAsync(messagingContext); _logger.Debug("The Queue({0}) handle complete! Message Data: {1}", _metadata.ConsumeOptions.Queue, ToStringMessageData(messagingContext.Data)); if (_metadata.ConsumeOptions.IsAutoAck) { messagingContext.Ack(); } } catch (DeserializeException ex) { HandleDeserializeException(ex, messagingContext); } catch (Exception ex) { HandleUnknowException(ex, messagingContext); } }
public ConsumeMessagingContext(ConsumeChannel channel, object model, BasicDeliverEventArgs e, Func <ReadOnlyMemory <byte>, TMessage> deserializeFunc, ConsumeMetadata metadata) { Channel = channel; Model = model; Args = e; Metadata = metadata; _deserializeFunc = deserializeFunc; Data = _deserializeFunc(e.Body); }