0 レビュー
0 回答
メッセージキュー-PHPジョブキュー:1人のユーバーワーカー/ディスパッチャーまたは多数の小規模なワーカー?
ユーザーをそこに座らせて待つのではなく、非同期のジョブ/メッセージを使用して、PHPページで重いバックグラウンド作業を実行し始めています。これまでのところ、RabbitMQまたはAmazonのSQSではなくBeanstalkdを使用することに傾倒していますが、以下の私の質問はもう少し一般的であり、それらすべてに当てはまります。
1人の巨大な労働者が複数の職種のコーディネーターとして機能する方がよいでしょうか?
- ワーカーはすべてのジョブを監視し、ジョブタイプに基づいて委任します
- Beanstalkdへの開いている接続は1つだけです
- メタデータを使用してWorkerオブジェクトをディスパッチし、実際の作業を行いますか?
- サーバー上で一度に1つのジョブのみを処理できます
- 各労働者は1種類の仕事しか見ていません
- Beanstalkdへの複数の持続的な接続
- 各スクリプトは1つのことしか実行しないため、複雑さが軽減されます
- 他の種類のジョブは、1つの長いジョブが実行されるのを待っている間は詰まりません
- より多くのリソースを必要とします
または、同じサーバー上に複数のより小さなフォーカスされたワーカースクリプトを配置する方がよいでしょうか?
おそらく私が知らない他のいくつかの要因があるので、追加のヒントをいただければ幸いです。
(重要な場合は、Supervisorを使用してPHPベースのワーカースクリプトをデーモン化することを計画しています。現時点では、ワーカーは1台のサーバーでのみ実行されますが、将来的には2台に拡張される可能性があります...)< / p>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。