Пример #1
0
 public BatchProcessor(BatchProcessingBehaviourPipeline batchProcessingBehaviourPipeline,
                       BatchFactory batchFactory,
                       ILogger <BatchProcessor> log)
 {
     _batchProcessingBehaviourPipeline = batchProcessingBehaviourPipeline;
     _batchFactory = batchFactory;
     _log          = log;
 }
 public DefaultBatchBehaviourTests()
 {
     _log = Substitute.For <ILogger <DefaultBatchProcessingBehaviour> >();
     _defaultBehaviour = new BatchProcessingBehaviourPipeline()
                         .AddBehaviour(new DefaultBatchProcessingBehaviour(_log, new SubscriberConfiguration
     {
         SubscriberName = "test"
     }));
 }
        public BatchProcessingBehaviourPipeline Build(IContext ctx)
        {
            var pipeline = new BatchProcessingBehaviourPipeline();

            foreach (var batchPipelineBehaviourType in _batchPipelineBehaviourTypes)
            {
                pipeline.AddBehaviour((IBatchProcessingBehaviour)ctx.GetInstance(batchPipelineBehaviourType));
            }
            return(pipeline);
        }
        public BatchProcessingBehaviourPipeline Build(IServiceProvider provider)
        {
            var pipeline = new BatchProcessingBehaviourPipeline();

            foreach (var batchPipelineBehaviourType in _batchPipelineBehaviourTypes)
            {
                pipeline.AddBehaviour((IBatchProcessingBehaviour)provider.GetService(batchPipelineBehaviourType));
            }
            return(pipeline);
        }
Пример #5
0
        public CircuitBreakerTests()
        {
            _messageContext = new MessageContext
            {
                Message         = new Message(),
                MessageReceiver = Substitute.For <IMessageReceiver>()
            };

            var config = new SubscriberConfiguration
            {
                SubscriberName = "TestSubscriber"
            };

            _events = Substitute.For <ICircuitBreakerEvents>();

            var circuitBreakerOptions = new CircuitBreakerBatchProcessingBehaviour.CircuitBreakerOptions(1, exception => false);

            circuitBreakerOptions.CircuitBroken += _events.Broken;
            circuitBreakerOptions.CircuitReset  += _events.Reset;
            circuitBreakerOptions.CircuitTest   += _events.TestCircuit;

            _circuitBreakerBatchProcessingBehaviour = new CircuitBreakerBatchProcessingBehaviour(Substitute.For <ILogger <CircuitBreakerBatchProcessingBehaviour> >(),
                                                                                                 config, circuitBreakerOptions);

            _batchProcessingBehaviourPipeline = new BatchProcessingBehaviourPipeline()
                                                .AddBehaviour(_circuitBreakerBatchProcessingBehaviour)
                                                .AddBehaviour(new DefaultBatchProcessingBehaviour(Substitute.For <ILogger <DefaultBatchProcessingBehaviour> >(), config));

            _mockHandleMessageBehaviour = new MockHandleMessageBehaviour();
            var circuitBreakerMessageProcessingBehaviour = new CircuitBreakerMessageProcessingBehaviour(_circuitBreakerBatchProcessingBehaviour);

            _messageProcessingPipeline = new MessageProcessingBehaviourPipeline()
                                         .AddBehaviour(new DefaultMessageProcessingBehaviour(Substitute.For <ILogger <DefaultMessageProcessingBehaviour> >(), config))
                                         .AddBehaviour(circuitBreakerMessageProcessingBehaviour)
                                         .AddBehaviour(_mockHandleMessageBehaviour);
        }
 public static BatchProcessingBehaviourPipeline AddBehaviour <T>(this BatchProcessingBehaviourPipeline pipleline, IContext context) where T : IBatchProcessingBehaviour
 {
     return(pipleline.AddBehaviour(context.GetInstance <T>()));
 }
 public static BatchProcessingBehaviourPipeline AddBehaviour <T>(this BatchProcessingBehaviourPipeline pipleline, IServiceProvider provider) where T : IBatchProcessingBehaviour
 {
     return(pipleline.AddBehaviour(provider.GetService <T>()));
 }