私は現在、Pheanstalk(beanstalkd)を使用して、複数のワーカーを使用して多数のジョブを処理しています。ワーカーは非同期で実行されるため、すべてのジョブが終了したかどうかを判断する一般的な方法があるかどうか疑問に思っています。
最後に発行されたジョブに「終了」フラグを追加し、ワーカーを使用してそのフラグをチェックすることを考えました。問題は、最後の仕事が必ずしも労働者によって最後の仕事であるとは限らないということです。労働者は電話を切ったり、墜落したりする可能性があります。
私は現在、Pheanstalk(beanstalkd)を使用して、複数のワーカーを使用して多数のジョブを処理しています。ワーカーは非同期で実行されるため、すべてのジョブが終了したかどうかを判断する一般的な方法があるかどうか疑問に思っています。
最後に発行されたジョブに「終了」フラグを追加し、ワーカーを使用してそのフラグをチェックすることを考えました。問題は、最後の仕事が必ずしも労働者によって最後の仕事であるとは限らないということです。労働者は電話を切ったり、墜落したりする可能性があります。
すべてのジョブがいつ完了したかを知りたい場合は、各ジョブに完了フラグを設定し、すべてのフラグが完了に設定されるまで待つ必要があります。ご指摘のとおり、複数のワーカーにまたがる一連のジョブの完了順序について保証はありません。
その作業を複数ではなく単一のジョブとしてキューに入れ、その単一のジョブが終了するのを待つだけで済むようにすることはできますか?
おそらく、これらのジョブがいつ終了するかを知る必要があるかどうかについても検討する必要があります。たとえば、画像処理の場合、実際の画像が準備できるまでプレースホルダー画像を表示できます。それらがすべて終了するのを本当に待つ必要がある場合は、非同期作業キューに最適ではない可能性があります。
より良い回答を得るには、質問を詳しく説明するか、より具体的な例を提供する必要がある場合があります。
乾杯!ポール