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

ServiceStack:Възстановяване на конвейера при ръчно извикване на услуга?

Кои части от тръбопровода са загубени?

Нито един от тръбопровода за заявки не се изпълнява:

myRequestService.Any(e.Request);

Физически извиква само Any C# метод на вашия MyRequestService клас, не прави (нито не може) нищо друго.

Препоръчителният начин за извикване на други услуги по време на заявка за услуга е да използвате шлюза за услуги.

Но ако искате да извикате услуга извън HTTP заявка, можете да използвате RPC Gateway за изпълнение на ненадеждни услуги, тъй като той извиква пълния конвейер за заявки и преобразува HTTP отговорите за грешка във въведени отговори за грешка:

HostContext.AppHost.RpcGateway.ExecuteAsync()

За изпълнение на вътрешни/доверени услуги извън заявка за услуга можете да използвате HostContext.AppHost.ExecuteMessage, както се използва от ServiceStack MQ, който прилага филтри за заявка/отговор на съобщения, филтри за действие и събития за услуга.

Регистрирах се с container.AddScoped

Не използвайте зависимости с обхват на заявка извън HTTP заявка, използвайте Singleton, ако зависимостите са ThreadSafe, в противен случай ги регистрирайте като преходни. Ако трябва да подадете хранилище на заявка, прехвърлете ги в IRequest.Items .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се свърже с Redis от Docker

  2. Как да възстановим Redis данни от моментна снимка (rdb файл), копирана от друга машина?

  3. socket.io redis и изтичане на памет

  4. защо е толкова бавен със 100 000 записа при използване на конвейер в redis?

  5. Redis - Как да конфигурирате персонализирани преобразувания