Guest User

Untitled

a guest
May 25th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. using System;
  2.  
  3. using System.Data.SqlClient;
  4. using System.Threading.Tasks;
  5. using NServiceBus;
  6. using NServiceBus.Persistence.Sql;
  7.  
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Start().GetAwaiter().GetResult();
  13. }
  14.  
  15. static async Task Start()
  16. {
  17. var config = new EndpointConfiguration("SeparateConnections");
  18. config.EnableInstallers();
  19. config.SendFailedMessagesTo("error");
  20.  
  21. var persistence = config.UsePersistence<SqlPersistence>();
  22. persistence.SqlDialect<SqlDialect.MsSqlServer>();
  23.  
  24. persistence.ConnectionBuilder(() => new SqlConnection("data source=.\\sqlexpress; integrated security=true; initial catalog=nservicebus"));
  25. var subscriptions = persistence.SubscriptionSettings();
  26. subscriptions.DisableCache();
  27. subscriptions.ConnectionBuilder(() => new SqlConnection("data source=.\\sqlexpress; integrated security=true; initial catalog=nservicebus1"));
  28.  
  29. var timeouts = persistence.TimeoutSettings();
  30. timeouts.ConnectionBuilder(() => new SqlConnection("data source=.\\sqlexpress; integrated security=true; initial catalog=nservicebus2"));
  31.  
  32. var routing = config.UseTransport<MsmqTransport>().Routing();
  33. routing.RegisterPublisher(typeof(MyEvent), "SeparateConnections");
  34.  
  35. var endpoint = await Endpoint.Start(config);
  36.  
  37. Console.WriteLine("Press <enter> to send a message");
  38. while (true)
  39. {
  40. Console.ReadLine();
  41.  
  42. var sendOptions = new SendOptions();
  43. sendOptions.DelayDeliveryWith(TimeSpan.FromSeconds(5));
  44. sendOptions.RouteToThisEndpoint();
  45. await endpoint.Send(new MyMessage(), sendOptions);
  46. }
  47. }
  48. }
  49.  
  50. class MyMessageHandler : IHandleMessages<MyMessage>
  51. {
  52. public Task Handle(MyMessage message, IMessageHandlerContext context)
  53. {
  54. return context.Publish(new MyEvent());
  55. }
  56. }
  57.  
  58. class MyEventHandler : IHandleMessages<MyEvent>
  59. {
  60. public Task Handle(MyEvent message, IMessageHandlerContext context)
  61. {
  62. Console.WriteLine("Got event");
  63. return Task.CompletedTask;
  64. }
  65. }
  66.  
  67. class MyMessage : IMessage
  68. {
  69. }
  70.  
  71. class MyEvent : IEvent
  72. {
  73. }
Add Comment
Please, Sign In to add comment