public static void UseServiceBusMessageScheduler(this IPipeConfigurator<ConsumeContext> configurator) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var pipeBuilderConfigurator = new ServiceBusMessageSchedulerSpecification(); configurator.AddPipeSpecification(pipeBuilderConfigurator); }
/// <summary> /// Specify an endpoint to use for message scheduling /// </summary> /// <param name="configurator"></param> /// <param name="schedulerAddress"></param> public static void UseMessageScheduler(this IPipeConfigurator<ConsumeContext> configurator, Uri schedulerAddress) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var pipeBuilderConfigurator = new MessageSchedulerPipeSpecification(schedulerAddress); configurator.AddPipeSpecification(pipeBuilderConfigurator); }
/// <summary> /// Adds a RabbitMQ Basic Consumer to the pipeline /// </summary> /// <param name="configurator"></param> /// <param name="pipe"></param> /// <param name="settings"></param> /// <param name="receiveObserver"></param> /// <param name="endpointObserver"></param> /// <param name="exchangeBindings"></param> /// <param name="taskSupervisor"></param> /// <param name="mediator"></param> public static void RabbitMqConsumer(this IPipeConfigurator<ConnectionContext> configurator, IPipe<ReceiveContext> pipe, ReceiveSettings settings, IReceiveObserver receiveObserver, IReceiveEndpointObserver endpointObserver, IEnumerable<ExchangeBindingSettings> exchangeBindings, ITaskSupervisor taskSupervisor, Mediator<ISetPrefetchCount> mediator) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var pipeBuilderConfigurator = new RabbitMqConsumerPipeSpecification(pipe, settings, receiveObserver, endpointObserver, exchangeBindings, taskSupervisor, mediator); configurator.AddPipeSpecification(pipeBuilderConfigurator); }
/// <summary> /// Rescue exceptions via the alternate pipe /// </summary> /// <param name="configurator"></param> /// <param name="rescuePipe"></param> public static void UseDeadLetterQueue(this IPipeConfigurator<ReceiveContext> configurator, IPipe<ReceiveContext> rescuePipe) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var rescueConfigurator = new DeadLetterPipeSpecification(rescuePipe); configurator.AddPipeSpecification(rescueConfigurator); }
/// <summary> /// Uses the RabbitMQ Delayed Exchange plugin to schedule messages for future delivery. A lightweight /// alternative to Quartz, which does not require any storage outside of RabbitMQ. /// </summary> /// <param name="configurator"></param> public static void UseDelayedExchangeMessageScheduler(this IBusFactoryConfigurator configurator) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var specification = new DelayedExchangeMessageSchedulerSpecification(); configurator.AddPipeSpecification(specification); }
/// <summary> /// Includes an outbox in the consume filter path, which delays outgoing messages until the return path /// of the pipeline returns to the outbox filter. At this point, the message execution pipeline should be /// nearly complete with only the ack remaining. If an exception is thrown, the messages are not sent/published. /// </summary> /// <param name="configurator">The pipe configurator</param> public static void UseInMemoryOutbox(this IConsumePipeConfigurator configurator) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var specification = new InMemoryOutboxSpecification(); configurator.AddPipeSpecification(specification); }
/// <summary> /// Adds a RabbitMQ Basic Consumer to the pipeline /// </summary> /// <param name="configurator"></param> /// <param name="pipe"></param> /// <param name="settings"></param> /// <param name="receiveObserver"></param> /// <param name="transportObserver"></param> /// <param name="exchangeBindings"></param> /// <param name="supervisor"></param> /// <param name="managementPipe"></param> /// <param name="sendEndpointProvider"></param> /// <param name="publishEndpointProvider"></param> /// <param name="host"></param> public static void RabbitMqConsumer(this IPipeConfigurator<ConnectionContext> configurator, IPipe<ReceiveContext> pipe, ReceiveSettings settings, IReceiveObserver receiveObserver, IReceiveTransportObserver transportObserver, IEnumerable<ExchangeBindingSettings> exchangeBindings, ITaskSupervisor supervisor, IManagementPipe managementPipe, ISendEndpointProvider sendEndpointProvider, IPublishEndpointProvider publishEndpointProvider, IRabbitMqHost host) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var pipeBuilderConfigurator = new RabbitMqConsumerPipeSpecification(pipe, settings, receiveObserver, transportObserver, exchangeBindings, supervisor, managementPipe, sendEndpointProvider, publishEndpointProvider, host); configurator.AddPipeSpecification(pipeBuilderConfigurator); }
/// <summary> /// Rescue exceptions via the alternate pipe /// </summary> /// <typeparam name="T"></typeparam> /// <param name="configurator"></param> /// <param name="rescuePipe"></param> /// <param name="exceptionFilter"></param> public static void UseRescue(this IPipeConfigurator<ReceiveContext> configurator, IPipe<ExceptionReceiveContext> rescuePipe, IPolicyExceptionFilter exceptionFilter = null) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var rescueConfigurator = new ReceiveContextRescuePipeSpecification(rescuePipe, exceptionFilter); configurator.AddPipeSpecification(rescueConfigurator); }
/// <summary> /// Adds a RabbitMQ Basic Consumer to the pipeline /// </summary> /// <param name="configurator"></param> /// <param name="receivePipe"></param> /// <param name="settings"></param> /// <param name="receiveSettings"></param> /// <param name="receiveObserver"></param> /// <param name="receiveTransportObserver"></param> /// <param name="supervisor"></param> /// <param name="sendPipe"></param> public static void HttpConsumer(this IPipeConfigurator<OwinHostContext> configurator, IPipe<ReceiveContext> receivePipe, HttpHostSettings settings, ReceiveSettings receiveSettings, IReceiveObserver receiveObserver, IReceiveTransportObserver receiveTransportObserver, ITaskSupervisor supervisor, ISendPipe sendPipe) { if (configurator == null) throw new ArgumentNullException(nameof(configurator)); var pipeBuilderConfigurator = new HttpConsumerPipeSpecification(settings, receiveSettings, receivePipe, receiveObserver, receiveTransportObserver, supervisor, sendPipe); configurator.AddPipeSpecification(pipeBuilderConfigurator); }