Open source lightweight event bus library
nuget | stats |
---|---|
services.AddEventBus(builder =>
{
builder.AddRabbtMQ(configure =>
{
configure.HostName = "localhost";
configure.VirtualHost = "/";
configure.Port = 5672;
configure.UserName = "guest";
configure.Password = "guest";
configure.QueueOptions.Name = "MyStack";
configure.ExchangeOptions.Name = "MyStack";
configure.ExchangeOptions.ExchangeType = "topic";
configure.RPCTimeout = 2000;// RPC timeout default 3000ms
});
},Assembly.GetExecutingAssembly());
[EventName("HelloMessage")]
public class HelloMessage : EventBase
{
public string Message { get; set; }
}
public class HelloMessageHandler : IEventHandler<HelloMessage>
{
public async Task HandleAsync(HelloMessage message, CancellationToken cancellationToken)
{
Console.WriteLine("Hello");
await Task.CompletedTask;
}
}
var bus = serviceProvider.GetRequiredService<IEventBus>();
await bus.PublishAsync(new HelloMessage() { Message = "Hello" });
MIT