Redis
 sql >> Baza danych >  >> NoSQL >> Redis

ServiceStack:Przywrócić potok podczas ręcznego wywoływania usługi?

Jakie części rurociągu zostały utracone?

Żaden potok żądania nie jest wykonywany:

myRequestService.Any(e.Request);

Fizycznie wywołuje tylko Any Metoda C# Twojej MyRequestService klasy, nie robi (ani nie może) robić niczego innego.

Zalecanym sposobem wywoływania innych Usług podczas Żądania Usługi jest użycie Bramy Usług.

Ale jeśli chcesz wywołać usługę poza żądaniem HTTP, możesz użyć bramy RPC do wykonywania niezaufanych usług, ponieważ wywołuje ona pełny potok żądań i konwertuje odpowiedzi na błędy HTTP na wpisane odpowiedzi na błędy:

HostContext.AppHost.RpcGateway.ExecuteAsync()

Do wykonywania wewnętrznych/zaufanych usług poza żądaniem usługi można użyć HostContext.AppHost.ExecuteMessage, tak jak jest to używane przez ServiceStack MQ, który stosuje filtry żądań/odpowiedzi żądania wiadomości, filtry i zdarzenia dotyczące czynności serwisowych.

Zarejestrowałem się w container.AddScoped

Nie używaj zależności z zakresem żądania poza żądaniem HTTP, użyj Singleton, jeśli zależności są ThreadSafe, w przeciwnym razie zarejestruj je jako przejściowe. Jeśli chcesz przekazać magazyn na żądanie, przekaż je w IRequest.Items .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Odzyskaj po zerwaniu połączenia w redis pub/sub

  2. Praca z klawiszami w redis

  3. Polecenie Redis, aby uzyskać wszystkie dostępne klucze?

  4. Redis w klasycznym ASP (VBScript)

  5. Jak utworzyć fasolę FindByIndexNameSessionRepository