private void InitializeCommandMessaging(Settings settings) { var deadCommandExchangeName = settings.ExchangeName + "-command-dead"; commandQueue = new Lazy <IQueue>(() => AdvancedBus.QueueDeclare(settings.QueueName + "-command", passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete, deadLetterExchange: deadCommandExchangeName)); deadCommandQueue = new Lazy <IQueue>(() => AdvancedBus.QueueDeclare(settings.QueueName + "-command-dead", passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete)); deadCommandExchange = new Lazy <IExchange>(() => AdvancedBus.ExchangeDeclare(deadCommandExchangeName, ExchangeType.Fanout, passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete)); deadCommandBinding = new Lazy <IBinding>(() => AdvancedBus.Bind(DeadCommandExchange, DeadCommandQueue, "")); }
public void Subscribe <T>(Action <T> onMessageReceived) where T : class { AdvancedBus.Consume(EventQueue, (b, p, i) => { var jsonString = Encoding.UTF8.GetString(b); var message = JsonConvert.DeserializeObject <T>(jsonString); return(Task.Factory.StartNew(() => onMessageReceived(message))); }); }
public virtual void Publish <T>(T message) where T : class { var properties = new MessageProperties { ContentType = "application/json" }; var json = JsonConvert.SerializeObject(message, Formatting.Indented, jsonSettings); var jsonBytes = Encoding.UTF8.GetBytes(json); AdvancedBus.Publish(EventExchange, "#", mandatory: false, immediate: false, messageProperties: properties, body: jsonBytes); }
private void InitializeEventMessaging(Settings settings) { var deadEventExchangeName = settings.ExchangeName + "-dead"; eventQueue = new Lazy <IQueue>(() => AdvancedBus.QueueDeclare(settings.QueueName, passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete, deadLetterExchange: deadEventExchangeName)); eventExchange = new Lazy <IExchange>(() => AdvancedBus.ExchangeDeclare(settings.ExchangeName, ExchangeType.Direct, passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete)); eventBinding = new Lazy <IBinding>(() => AdvancedBus.Bind(EventExchange, EventQueue, "#")); deadEventExchange = new Lazy <IExchange>(() => AdvancedBus.ExchangeDeclare(deadEventExchangeName, ExchangeType.Fanout, passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete)); deadEventQueue = new Lazy <IQueue>(() => AdvancedBus.QueueDeclare(settings.QueueName + "-dead", passive: settings.Passive, durable: settings.Durable, autoDelete: settings.AutoDelete)); deadEventBinding = new Lazy <IBinding>(() => AdvancedBus.Bind(DeadEventExchange, DeadEventQueue, "")); }
public void TestMethod1() { ICommandBus bus = new AdvancedBus(RabbitMqConfiguration.ConfigureBus()); Task.Factory.StartNew(() => bus.Send(new AddNewKmStand(1000, DateTime.Now, Guid.Empty))); var bus2 = RabbitMqConfiguration.ConfigureBus((cfg, host) => { cfg.ReceiveEndpoint(host, RabbitMqConstants.CommandsQueue, e => { //e.Consumer<MassTransitConsumer<AddNewKmStand>>(); }); }); bus2.StartAsync(); Console.WriteLine("Listening for Register order commands.. " + "Press enter to exit"); Console.ReadLine(); bus2.StopAsync(); }