Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Data.SqlClient;
- using System.Threading.Tasks;
- using NServiceBus;
- using NServiceBus.Persistence.Sql;
- class Program
- {
- static void Main(string[] args)
- {
- Start().GetAwaiter().GetResult();
- }
- static async Task Start()
- {
- var config = new EndpointConfiguration("SeparateConnections");
- config.EnableInstallers();
- config.SendFailedMessagesTo("error");
- var persistence = config.UsePersistence<SqlPersistence>();
- persistence.SqlDialect<SqlDialect.MsSqlServer>();
- persistence.ConnectionBuilder(() => new SqlConnection("data source=.\\sqlexpress; integrated security=true; initial catalog=nservicebus"));
- var subscriptions = persistence.SubscriptionSettings();
- subscriptions.DisableCache();
- subscriptions.ConnectionBuilder(() => new SqlConnection("data source=.\\sqlexpress; integrated security=true; initial catalog=nservicebus1"));
- var timeouts = persistence.TimeoutSettings();
- timeouts.ConnectionBuilder(() => new SqlConnection("data source=.\\sqlexpress; integrated security=true; initial catalog=nservicebus2"));
- var routing = config.UseTransport<MsmqTransport>().Routing();
- routing.RegisterPublisher(typeof(MyEvent), "SeparateConnections");
- var endpoint = await Endpoint.Start(config);
- Console.WriteLine("Press <enter> to send a message");
- while (true)
- {
- Console.ReadLine();
- var sendOptions = new SendOptions();
- sendOptions.DelayDeliveryWith(TimeSpan.FromSeconds(5));
- sendOptions.RouteToThisEndpoint();
- await endpoint.Send(new MyMessage(), sendOptions);
- }
- }
- }
- class MyMessageHandler : IHandleMessages<MyMessage>
- {
- public Task Handle(MyMessage message, IMessageHandlerContext context)
- {
- return context.Publish(new MyEvent());
- }
- }
- class MyEventHandler : IHandleMessages<MyEvent>
- {
- public Task Handle(MyEvent message, IMessageHandlerContext context)
- {
- Console.WriteLine("Got event");
- return Task.CompletedTask;
- }
- }
- class MyMessage : IMessage
- {
- }
- class MyEvent : IEvent
- {
- }
Add Comment
Please, Sign In to add comment