MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да конфигурирате Rebus да има теми въз основа на типа манипулатори

Има няколко неща, които изглеждат объркващи във вашия въпрос.

Но предполагам, че основният ви въпрос е как да сте сигурни, че всяко съобщение се обработва само веднъж от всеки абонат.

Отговорът е доста лесен:Имайте отделна крайна точка за всеки абонат - това означава, че всеки абонат ще има своя собствена опашка за въвеждане, от която се обработват съобщенията и към която ще се връща неуспешно съобщение.

След това можете да имате толкова или малко манипулатори във всеки абонат, колкото искате. Всички съвместими манипулатори ще бъдат изпълнени за всяко входящо съобщение.

С Rebus всяко извикване на Configure.With(...).(...).Start() ще ви даде отделна крайна точка - така че във вашия случай предлагам да обвиете създаването на крайна точка на абоната в метод, който след това можете да извикате по следния начин:

var event1Subscriber = CreateSubscriber("subscriber_event1");
event1Subscriber.Subscribe<Event1>().Wait();

var event2Subscriber = CreateSubscriber("subscriber_event2");
event2Subscriber.Subscribe<Event2>().Wait();

var event3Subscriber = CreateSubscriber("subscriber_event3");    
event3Subscriber.Subscribe<Event3>().Wait();

// ...

където CreateSubscriber тогава ще бъде нещо като това:

public IBus CreateSubscriber(string queueName)
{
    return Configure.With(GetContainerAdapter())
        .Transport(t => t.UseMsmq(queueName))
        .Start();        
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се ПУБЛИКУВА в nodejs и mongodb на openshift

  2. Съобщение за грешка от MongoDB Операция `disneys.insertOne()` буфериране изтече след 10000ms

  3. Използване на библиотека mongodb-stitch в Angular 4

  4. Сортиране на резултатите от заявката по реда на елементите в предоставения масив с условия в Mongoose

  5. Асинхронно групово (партидно) вмъкване в MySQL (или MongoDB?) чрез Node.js