protected override bool OnSubmit(EventData message, PartitionContext context) { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("Message submitted: {0}", new MessageContextInfo(context, message)); } try { MessageBus.OnResponseArrived(message.Body.Array, _requestResponseSettings.Topic).Wait(); } catch (Exception e) { if (_logger.IsEnabled(LogLevel.Error)) { _logger.LogError(e, "Error occured while consuming response message, {0}", new MessageContextInfo(context, message)); } // We can only continue and process all messages in the lease if (_requestResponseSettings.OnResponseMessageFault != null) { // Call the hook _logger.LogDebug("Executing the attached hook from {0}", nameof(_requestResponseSettings.OnResponseMessageFault)); _requestResponseSettings.OnResponseMessageFault(_requestResponseSettings, message, e); } } return(_checkpointTrigger.Increment()); }
public async Task OnMessage(Message message) { try { await _messageBus.OnResponseArrived(message.Value, _requestResponseSettings.Topic).ConfigureAwait(false); } catch (Exception e) { if (_logger.IsEnabled(LogLevel.Error)) { _logger.LogError(e, "Error occured while consuming response message: {0}", new MessageContextInfo(_requestResponseSettings.GetGroup(), message)); } // For response messages we can only continue and process all messages in the lease // ToDo: Add support for retry ? if (_requestResponseSettings.OnResponseMessageFault != null) { // Call the hook _logger.LogTrace("Executing the attached hook from {0}", nameof(_requestResponseSettings.OnResponseMessageFault)); try { _requestResponseSettings.OnResponseMessageFault(_requestResponseSettings, message, e); } catch (Exception e2) { _logger.LogWarning(e2, "Error handling hook failed for message: {0}", new MessageContextInfo(_requestResponseSettings.GetGroup(), message)); } } } if (_checkpointTrigger.Increment()) { await _commitController.Commit(message.TopicPartitionOffset).ConfigureAwait(false); } }