sql >> Databáze >  >> NoSQL >> Redis

MassTransit sága s Redis persistence dává Method Accpet nemá implementační výjimku

Problém je zde požadavek-odpověď.

Funguje to takto:

  1. MT vloží ID požadavku do vlastnosti stavu ságy UrlRequestId
  2. Požadavek je odeslán
  3. Dostanete zpět odpověď, odpověď obsahuje adresu žadatele a ID požadavku v záhlaví
  4. MT používá k hledání úložiště ságy vaší instance pomocí repo.Find(x => x.UrlRequestId == message.Headers.RequestId) (proto toto není skutečný kód, ale děje se to)
  5. Redis (nebo jakýkoli jiný KVS) nepodporuje dotazy, takže nepodporujeme dotazy ani v repozitářích ságy a dostanete výjimku „neimplementováno“

Vaše specifikace korelace pro odpovědi nemá od Request žádný účinek vždy používá hlavičky k nalezení instance ságy, ke které odpověď patří.

Můžete to obejít tak, že nebudete používat request-response a místo toho vydáte událost pomocí context.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId }) a pomocí obvyklé korelace.



  1. Jak bezpečně načíst hash a převést hodnotu na logickou hodnotu, pokud existuje

  2. Jak vytisknout více než 20 položek (dokumentů) v prostředí MongoDB?

  3. Importujte soubor JSON do MongoDB pomocí mongoimport

  4. Co je pole __v v Mongoose