public PartitionConsumerForResponses(EventHubMessageBus messageBus, RequestResponseSettings requestResponseSettings) : base(messageBus) { _logger = messageBus.LoggerFactory.CreateLogger <PartitionConsumerForResponses>(); _requestResponseSettings = requestResponseSettings; _checkpointTrigger = new CheckpointTrigger(requestResponseSettings); }
public KafkaResponseConsumer(KafkaMessageBus messageBus, RequestResponseSettings requestResponseSettings) : base(messageBus, requestResponseSettings.Group, new List <string> { requestResponseSettings.Topic }) { Start(); }
public KafkaResponseProcessor(RequestResponseSettings requestResponseSettings, TopicPartition topicPartition, IKafkaCommitController commitController, MessageBusBase messageBus, ICheckpointTrigger checkpointTrigger) { Log.InfoFormat("Creating for Group: {0}, Topic: {1}, Partition: {2}", requestResponseSettings.Group, requestResponseSettings.Topic, topicPartition); _requestResponseSettings = requestResponseSettings; TopicPartition = topicPartition; _commitController = commitController; _messageBus = messageBus; _checkpointTrigger = checkpointTrigger; }
public KafkaResponseProcessor(RequestResponseSettings requestResponseSettings, TopicPartition topicPartition, IKafkaCommitController commitController, MessageBusBase messageBus, ICheckpointTrigger checkpointTrigger) { _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus)); _requestResponseSettings = requestResponseSettings; TopicPartition = topicPartition; _commitController = commitController; _checkpointTrigger = checkpointTrigger; _logger = messageBus.LoggerFactory.CreateLogger <KafkaResponseProcessor>(); _logger.LogInformation("Creating for Group: {0}, Topic: {1}, Partition: {2}", requestResponseSettings.GetGroup(), requestResponseSettings.Topic, topicPartition); }
public void RequestResponseSettings_SetsCheckpointsProperly() { // arrange var cs = new RequestResponseSettings(); // act cs.CheckpointEvery(10); cs.CheckpointAfter(TimeSpan.FromHours(60)); // assert cs.Properties[CheckpointSettings.CheckpointCount].ShouldBeEquivalentTo(10); cs.Properties[CheckpointSettings.CheckpointDuration].ShouldBeEquivalentTo(TimeSpan.FromHours(60)); }
public void GivenRequestResponseSettingsWhenConfiguredThenCheckpointsSetProperly() { // arrange var cs = new RequestResponseSettings(); // act cs.CheckpointEvery(10); cs.CheckpointAfter(TimeSpan.FromHours(60)); // assert cs.Properties[CheckpointSettings.CheckpointCount].Should().BeEquivalentTo(10); cs.Properties[CheckpointSettings.CheckpointDuration].Should().BeEquivalentTo(TimeSpan.FromHours(60)); }
public void BuildsProperSettings() { // arrange var topic = "topic"; var timeout = TimeSpan.FromSeconds(16); var settings = new RequestResponseSettings(); // act var subject = new RequestResponseBuilder(settings); subject.DefaultTimeout(timeout); subject.ReplyToTopic(topic); // assert settings.Timeout.Should().Be(timeout); settings.Topic.Should().Be(topic); }
public KafkaResponseProcessorTest() { _topicPartition = new TopicPartition("topic-a", 0); var requestResponseSettings = new RequestResponseSettings { Topic = "topic-a" }; requestResponseSettings.SetGroup("group-a"); _messageBusMock = new MessageBusMock { BusSettings = { RequestResponse = requestResponseSettings } }; _subject = new KafkaResponseProcessor(_messageBusMock.BusSettings.RequestResponse, _topicPartition, _commitControllerMock.Object, _messageBusMock.Bus, _checkpointTrigger.Object); }
public ResponseMessageProcessor(RequestResponseSettings requestResponseSettings, MessageBusBase messageBus, Func <TMessage, byte[]> messagePayloadProvider) { _requestResponseSettings = requestResponseSettings ?? throw new ArgumentNullException(nameof(requestResponseSettings)); _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus)); _messagePayloadProvider = messagePayloadProvider ?? throw new ArgumentNullException(nameof(messagePayloadProvider)); }
public GroupTopicConsumer(EventHubMessageBus messageBus, RequestResponseSettings requestResponseSettings) : this(messageBus, new TopicGroup(requestResponseSettings.Topic, requestResponseSettings.GetGroup()), () => new PartitionConsumerForResponses(messageBus, requestResponseSettings)) { }
public KafkaResponseProcessor(RequestResponseSettings requestResponseSettings, TopicPartition topicPartition, IKafkaCommitController commitController, MessageBusBase messageBus) : this(requestResponseSettings, topicPartition, commitController, messageBus, new CheckpointTrigger(requestResponseSettings)) { }
public SerializeRequestResponseMessage(IMessageSerializer serializer, IMessageSerializer messageWithHeadersSerializer, RequestResponseSettings requestResponseSettings) : base(WellKnownStep.Publish) { this.serializer = serializer; this.messageWithHeadersSerializer = messageWithHeadersSerializer; this.requestResponseSettings = requestResponseSettings; }
/// <summary> /// Checkpoint after T elapsed time. /// </summary> /// <param name="settings"></param> /// <param name="duration"></param> /// <returns></returns> public static RequestResponseSettings CheckpointAfter(this RequestResponseSettings settings, TimeSpan duration) { settings.Properties[CheckpointSettings.CheckpointDuration] = duration; return(settings); }
/// <summary> /// Checkpoint every N-th processed message. /// </summary> /// <param name="settings"></param> /// <param name="numberOfMessages"></param> /// <returns></returns> public static RequestResponseSettings CheckpointEvery(this RequestResponseSettings settings, int numberOfMessages) { settings.Properties[CheckpointSettings.CheckpointCount] = numberOfMessages; return(settings); }
public PartitionConsumerForResponses(EventHubMessageBus messageBus, RequestResponseSettings requestResponseSettings) : base(messageBus) { _requestResponseSettings = requestResponseSettings; _checkpointTrigger = new CheckpointTrigger(requestResponseSettings); }
public ResponseMessageProcessor(RequestResponseSettings requestResponseSettings, MessageBusBase messageBus, Func <TMessage, byte[]> messagePayloadProvider) { _requestResponseSettings = requestResponseSettings; _messageBus = messageBus; _messagePayloadProvider = messagePayloadProvider; }
public EventHubConsumer(EventHubMessageBus messageBus, RequestResponseSettings requestResponseSettings) : this(messageBus, requestResponseSettings, x => new EventProcessorForResponses(x, requestResponseSettings)) { }
public EventProcessorForResponses(EventHubConsumer consumer, RequestResponseSettings requestResponseSettings) : base(consumer) { _requestResponseSettings = requestResponseSettings; }