sql >> データベース >  >> NoSQL >> Redis

ServiceStack:サービスを手動で呼び出すときにパイプラインを復元しますか?

    パイプラインのどの部分が失われますか?

    リクエストパイプラインは実行されません:

    myRequestService.Any(e.Request);
    

    物理的にはAnyのみを呼び出しています MyRequestServiceのC#メソッド クラス、それは他に何もしません(またはできません)。

    サービスリクエスト中に他のサービスを呼び出すための推奨される方法は、サービスゲートウェイを使用することです。

    ただし、HTTPリクエストの外部でサービスを呼び出す場合は、RPCゲートウェイを使用して、信頼できないサービスを実行できます。RPCゲートウェイは、完全なリクエストパイプラインを呼び出し、HTTPエラー応答を型付きエラー応答に変換します。

    HostContext.AppHost.RpcGateway.ExecuteAsync()
    

    サービスリクエストの外部で内部/信頼できるサービスを実行するには、メッセージリクエストリクエスト/レスポンスフィルター、サービスアクションフィルター、イベントを適用するServiceStackMQで使用されるHostContext.AppHost.ExecuteMessageを使用できます。

    container.AddScoped

    に登録しました

    HTTPリクエストの外部でリクエストスコープの依存関係を使用しないでください。依存関係がThreadSafeの場合はシングルトンを使用し、そうでない場合はトランジェントとして登録してください。リクエストごとのストレージを渡す必要がある場合は、IRequest.Itemsで渡します。 。




    1. Redisで特殊文字を含む数十万のキーを一括削​​除する方法

    2. arrayFiltersでフィルターされた位置演算子を使用して更新を適用する方法

    3. redispythonでのキーの有効期限の通知

    4. Mongodbアグリゲーション$group、配列の長さを制限