RabbitMqEventBus Class
Definition
- Namespace
- Savvyio.Extensions.RabbitMQ.EventDriven
- Assemblies
- Savvyio.Extensions.RabbitMQ.dll
Provides a default implementation of the RabbitMqMessage class for messages holding an IIntegrationEvent implementation.
public class RabbitMqEventBus : RabbitMqMessage, IDisposable, IAsyncDisposable, IAsyncHealthCheckProvider<IConnection>, IPublishSubscribeChannel<IIntegrationEvent>, IPublisher<IIntegrationEvent>, ISubscriber<IIntegrationEvent>
- Inheritance
-
objectRabbitMqEventBus
- Implements
-
IAsyncHealthCheckProvider<IConnection>
- Derived
- Inherited Members
Examples
RabbitMqEventBus publishes and subscribes to integration events through RabbitMQ. Configure it with RabbitMqEventBusOptions and use it as IPublishSubscribeChannel<IIntegrationEvent>.
using System;
using Savvyio.EventDriven;
using Savvyio.Extensions.RabbitMQ.EventDriven;
using Savvyio.Messaging;
namespace ExampleApp;
public class RabbitMqEventBusConfig
{
public static RabbitMqEventBusOptions CreateOptions() => new RabbitMqEventBusOptions { AmqpUrl = new Uri("amqp://guest:guest@localhost:5672"), ExchangeName = "events" };
public static IPublishSubscribeChannel<IIntegrationEvent> AsChannel(RabbitMqEventBus bus) => bus;
}
Constructors
| Name | Description |
|---|---|
| RabbitMqEventBus(IMarshaller, RabbitMqEventBusOptions) | Initializes a new instance of the RabbitMqEventBus class. |
Methods
| Name | Description |
|---|---|
| PublishAsync(IMessage<IIntegrationEvent>, Action<AsyncOptions>) | Publishes the specified integration event message asynchronously to the configured RabbitMQ exchange. |
| SubscribeAsync(Func<IMessage<IIntegrationEvent>, CancellationToken, Task>, Action<SubscribeAsyncOptions>) | Subscribes to integration event messages from the configured RabbitMQ exchange and invokes the specified asynchronous handler for each received message. |
See Also
IPointToPointChannel<TRequest>