sql >> Databáze >  >> NoSQL >> MongoDB

Jak nakonfigurovat Rebus, aby měl témata založená na typu handlerů

Ve vaší otázce se zdají matoucí některé věci.

Ale myslím, že vaší základní otázkou je, jak si být jisti, že každou zprávu zpracuje každý předplatitel pouze jednou.

Odpověď je docela snadná:Mít samostatný koncový bod pro každého odběratele – to znamená, že každý odběratel bude mít svou vlastní vstupní frontu, ze které budou zprávy zpracovávány a do které se vrátí neúspěšná zpráva.

V každém odběrateli pak můžete mít tolik nebo jen málo obslužných prvků, kolik chcete. Pro každou příchozí zprávu budou provedeny všechny kompatibilní handlery.

S Rebusem každé vyvolání Configure.With(...).(...).Start() vám poskytne samostatný koncový bod - takže ve vašem případě doporučuji zabalit vytvoření koncového bodu odběratele do metody, kterou pak můžete vyvolat takto:

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();

// ...

kde CreateSubscriber by pak bylo něco takového:

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



  1. Vložte do vysoce vnořeného dokumentu MongoDB

  2. nodes passport Chyba:Neznámá strategie autentizace local-login

  3. Můžeme použít úložiště jarních dat k aktualizaci vložených dokumentů v mongodb

  4. brew install php56-mongo Příkaz nefunguje