Exemplo n.º 1
0
 protected override void ConfigureConsumer(
     IReceiveEndpointConfigurator endpointConfigurator,
     IConsumerConfigurator <UserConsumer> consumerConfigurator)
 {
     consumerConfigurator.Message <CreateUser>(m =>
                                               m.UseFilter(new UserFilter()));
 }
Exemplo n.º 2
0
        protected override void ConfigureConsumer(
            IReceiveEndpointConfigurator endpointConfigurator,               // endPoint 는 이걸로 설정
            IConsumerConfigurator <SubmitOrderConsumer> consumerConfigurator // consumer pipeline 을 설정.
            )
        {
            // 메시지 처리시  Unhandled Exception 발생하면, Retry 하게 할 수 있다.
            endpointConfigurator.UseMessageRetry(configurator =>
            {
                configurator.Intervals(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(10));
            });

            // pipeline! DEMO! (DEMO 는 DEMO일 뿐 통상 아래같은 코드는 하지 않는다. )
            // 잘 보면 ... pipeline = middleware!
            // 1) 현 Consumer에 대한 Pipeline 구성
            // consumerConfigurator.UseFilter(new RepeatFilter<ConsumerConsumeContext<SubmitOrderConsumer>>());
            consumerConfigurator.UseExecuteAsync(context =>
            {
                Console.WriteLine("@@@ {0} --> {1}", context.SourceAddress, context.DestinationAddress);
                return(Task.CompletedTask);
            });
            // 2) 현 Consumer의 특정 메시지에 대한 pipeline 구성
            consumerConfigurator.Message <SubmitOrder>(configurator =>
            {
                configurator.UseExecuteAsync(context =>
                {
                    Console.WriteLine("@@@@ SubmitOrder 메시지가 왔네요? : {0}.", context.Message);
                    return(Task.CompletedTask);
                });
            });
        }
        protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator,
                                                  IConsumerConfigurator <SubmitOrderConsumer> consumerConfigurator)
        {
            endpointConfigurator.UseMessageRetry(r => r.Interval(3, 1000));
            endpointConfigurator.UseServiceScope(_serviceProvider);

            consumerConfigurator.Message <SubmitOrder>(m => m.UseFilter(new ContainerScopedFilter()));
        }
Exemplo n.º 4
0
        void IConsumerConfigurationObserver.ConsumerMessageConfigured <T, TMessage>(IConsumerMessageConfigurator <T, TMessage> configurator)
        {
            var specification = new ConsumeContextRetryPipeSpecification <ConsumeContext <TMessage>, RetryConsumeContext <TMessage> >(Factory, _cancellationToken);

            _configure?.Invoke(specification);

            _configurator.Message <TMessage>(x => x.AddPipeSpecification(specification));
        }
Exemplo n.º 5
0
        void IConsumerConfigurationObserver.ConsumerMessageConfigured <T, TMessage>(IConsumerMessageConfigurator <T, TMessage> configurator)
        {
            var specification = new InMemoryOutboxSpecification <TMessage>();

            _configure?.Invoke(specification);

            _configurator.Message <TMessage>(x => x.AddPipeSpecification(specification));
        }
Exemplo n.º 6
0
        protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator,
                                                  IConsumerConfigurator <ScheduleMessageConsumer> consumerConfigurator)
        {
            if (endpointConfigurator is IRabbitMqReceiveEndpointConfigurator rabbit)
            {
                rabbit.PrefetchCount = (ushort)(_endpointDefinition.ConcurrentMessageLimit ?? 32);
            }

            consumerConfigurator.Message <ScheduleMessage>(m => m.UsePartitioner(_endpointDefinition.Partition, p => p.Message.CorrelationId));
        }
        void IConsumerConfigurationObserver.ConsumerMessageConfigured <T, TMessage>(IConsumerMessageConfigurator <T, TMessage> configurator)
        {
            var redeliverySpecification = new DelayedRedeliveryPipeSpecification <TMessage>();
            var retrySpecification      = new RedeliveryRetryPipeSpecification <TMessage>();

            _configure?.Invoke(retrySpecification);

            _configurator.Message <TMessage>(x =>
            {
                x.AddPipeSpecification(redeliverySpecification);
                x.AddPipeSpecification(retrySpecification);
            });
        }
        void IConsumerConfigurationObserver.ConsumerMessageConfigured <T, TMessage>(IConsumerMessageConfigurator <T, TMessage> configurator)
        {
            var specification = new ConcurrencyLimitConsumePipeSpecification <TMessage>(Limiter);

            _configurator.Message <TMessage>(x => x.AddPipeSpecification(specification));
        }
 protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator,
                                           IConsumerConfigurator <CancelScheduledMessageConsumer> consumerConfigurator)
 {
     consumerConfigurator.Message <CancelScheduledMessage>(m => m.UsePartitioner(_endpointDefinition.Partition, p => p.Message.TokenId));
 }
 protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator, IConsumerConfigurator <CreateWorkItemConsumer> consumerConfigurator)
 {
     consumerConfigurator.Message <CreateWorkItemEvent>(m => m.UseFilter(new ContainerScopedFilter()));
 }
Exemplo n.º 11
0
 protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator, IConsumerConfigurator <AddPaymentConsumer> consumerConfigurator)
 {
     consumerConfigurator.Message <AddPaymentMessage>(x => x.UsePartitioner(8, m => m.Message.Id));
 }