複数のマシンにまたがる定義済みの一連のタスクを実行するために Celery を検討しています。各マシンはいくつかのタスクのいずれかを処理できますが、一部のタスクは他のマシン リソースよりも多くのマシン リソースを必要とします。Celery を使用してこれらのリソースを管理する方法はありますか?
質問する
2065 次
1 に答える
3
Celery は、ワーカーの現在/過去のリソース使用率を測定し、それらの測定値に基づいて実行する作業量を調整する手段を提供しません。ただし、Celery を使用すると、より予測可能でより均等に分散されたリソース使用率 (YMMV) を実現できるいくつかのノブがあります。
パフォーマンス要件のないタスクがある場合は、レート制限を使用して、一定期間に実行できるタスクの数を制限することを検討してください。
別のオプションは、セロリ キューを有利に使用することです。必要に応じて、軽いタスク用のキューと重いタスク用のキューを作成し、馬力の高いワーカーに重いキューをリッスンさせ、馬力の少ないワーカーに軽いキューをリッスンさせることができます (または、重いタスクをリッスンするワーカーが多く、軽いタスクをリッスンするワーカーは少なくなります)。 )。
于 2012-10-09T03:35:38.817 に答える