コード例 #1
0
ファイル: Messaging.cs プロジェクト: Recodify/RecodifyLogging
        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, ""));
        }
コード例 #2
0
 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)));
     });
 }
コード例 #3
0
ファイル: Publisher.cs プロジェクト: Recodify/RecodifyLogging
        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);
        }
コード例 #4
0
ファイル: Messaging.cs プロジェクト: Recodify/RecodifyLogging
        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, ""));
        }
コード例 #5
0
        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();
        }