私はdjangoとdjceleryを使用しています。一部のタスクは少し重いので、別のキューに入れておきます。
ユーザーガイドの自動ルーティングに関する部分によると、これは設定変数を介して実現できますCELERY_ROUTES
。ただし、これは機能しません。すべてのタスクがデフォルトのキューに入れられます。タスククラスでキュー変数を明示的に設定すると、機能します。
私の設定ファイルには
CELERY_ROUTES = {"analysis.tasks.analyze_item": {"queue": "analysis_queue"}}
私はセロリ労働者を
python manage.py celeryd -Q analysis_queue
私のtask.py
class Analyze(Task):
queue = 'analysis_queue' # <--- without this it doesn't work..
....
analyze_item = registry.tasks[Analyze.name]