私は現在、アプリケーションを操作しています。私の要件は、コントローラーで待たずにElasticsearchにデータを挿入したいということです。この挿入プロセスは、コントローラーで待機することなく、別のバックグラウンドスレッドで実行されます。コントローラは、戻る前に、このプロセス応答のユーザーデータを待たずに、このトレッドを呼び出します。
誰でも私にこのアーキテクチャを管理する方法を教えてください
あなたの質問は広すぎますが、一般的に言えば、ある種のバックグラウンドプロセスとその作業をスケジュールする方法が必要です。その点で、文字通り無数のオプションがありますが、それらは次の3つの主要なバケットの1つに分類されます。
IHostedService
ASP.NETCoreで。ニーズを満たす可能性が高いキューベースのホスト型サービスのサンプルコードがあります。これはおそらく最も簡単な方法ですが、最も堅牢性も低くなります。特に、アプリケーションが停止すると、キューもそれに伴い、アイテムが失われる可能性があります。
Hangfireのようなサードパーティツール。これは、中途半端なアプローチとして適しています。セットアップが比較的簡単で、比較的弾力性があります。
RabbitMQのようなメッセージキュー。基本的に、メッセージをキューに送信すると、そのキューで特定のメッセージタイプをリッスンし、それに基づいてアクションを実行する「サブスクライバー」ができます。これは設定が少し複雑ですが、他のアプローチよりもはるかに回復力があります。障害が発生した場合でもメッセージを確実に配信する方法があり、実際には複数のワーカーがキューをラウンドロビンしてスケールすることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加