2

ServiceStackホストに着信するリクエストのフローを制御する方法はありますか?リアクティブ拡張機能のObservable.Bufferのようなもの、または要求をバッファーにページアップする方法、またはメッセージフローにこのようなものを実装する場所を探しています。主に交通洪水や急増を処理するため。

4

1 に答える 1

1

ServiceStack の Messaging サポートを見てください。着信要求の実行を延期できる Redis およびインメモリ MQ ホストがあります。

一方向のエンドポイントIMessageFactoryへのすべての呼び出しを登録すると、登録済みの MQ Broker にすぐに延期されます/async

SMessage デモ プロジェクトは、リクエスト dtos を手動で作成して公開する例と、同じサービスでそれらを同期的に実行する例を示しています。

MQ ブローカーで処理するすべてのメッセージのメッセージ ハンドラーが登録されると、次のようになります。

mqService.RegisterHandler<PostStatusTwitter>(ServiceController.ExecuteMessage, noOfThreads:2);
mqService.RegisterHandler<CallFacebook>(ServiceController.ExecuteMessage);
mqService.RegisterHandler<EmailMessage>(ServiceController.ExecuteMessage);

公開されたすべての要求 DTO は、自動的に MQ Broker キューに入れられ、指定したバックグラウンド スレッドを使用して可能な限り高速にバックグラウンドで処理されます。

注: 延期されたリクエストは HTTP コンテキストに含まれなくなるため、カスタム HTTP ヘッダーなどの HTTP パラメータにアクセスできなくなります。

于 2013-02-19T07:16:45.213 に答える