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();
 }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 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));
 }
Esempio n. 10
0
 public GroupTopicConsumer(EventHubMessageBus messageBus, RequestResponseSettings requestResponseSettings)
     : this(messageBus, new TopicGroup(requestResponseSettings.Topic, requestResponseSettings.GetGroup()), () => new PartitionConsumerForResponses(messageBus, requestResponseSettings))
 {
 }
Esempio n. 11
0
 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;
 }
Esempio n. 13
0
 /// <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);
 }
Esempio n. 14
0
 /// <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);
 }
Esempio n. 15
0
 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;
 }
Esempio n. 17
0
 public EventHubConsumer(EventHubMessageBus messageBus, RequestResponseSettings requestResponseSettings)
     : this(messageBus, requestResponseSettings, x => new EventProcessorForResponses(x, requestResponseSettings))
 {
 }
 public EventProcessorForResponses(EventHubConsumer consumer, RequestResponseSettings requestResponseSettings)
     : base(consumer)
 {
     _requestResponseSettings = requestResponseSettings;
 }