私は、顧客が「Web で」個々のワーカー プロセスを実行できるようにするサービスを構築しています。プロセスは非常に長時間実行されるように設計されており、約 1 分ごとに新しい注文が送られます (イベント ドリブン)。新しい注文がなく、すべての注文が処理された場合でも、プロセスは継続して実行されるようになっています。→お客様1人につき1工程。
次の「機能」が必要です。
- 新しいプロセスを開始する
- プロセスを終了します (オンデマンドで、決して自動的には行われません)
- プロセス/ユーザーを追跡する
- プロセスの新しい「注文」を受け取ります (顧客 ID でプロセスを識別します)
- 顧客のプロセスが終了した場合 (例: 例外が発生した、誰かがサーバーを強制終了したなど)、注文を処理できない場合に顧客に通知します。
次の問題を解決できるパターンまたはベスト プラクティスを探してい ます 。多くのサーバーでのプロセス管理 (スケーラビリティ) : 1 つのサーバーで 100 ~ 200 のプロセスが実行される場合があります。より多くの顧客を獲得した場合、どのサーバーでプロセスが実行されたかをどのように記憶できますか?
以前にこれらの問題に直面した人が他にもいると確信しており、これを行うには「正しい」方法と「間違った」方法があることは確かです。