次を使用して、新しいスケジュールされたタスクを Celery に追加しています。
# tasks.py
@celery.task(name='update_scheduled_tasks')
def update_scheduled_tasks(self):
existing_celery_tasks = celery.conf['CELERYBEAT_SCHEDULER']
new_celery_tasks = load_more_tasks(existing_celery_tasks)
celery.conf.update(CELERYBEAT_SCHEDULER=new_celery_tasks)
そしてupdate_scheduled_tasks
、新しいタスクが追加されたときにタスクを呼び出します。
celery.tasks['update_scheduled_tasks].delay()
これは、1 つの Celery ワーカーで問題なく動作します。新しいスケジュールされたタスクが追加されます。複数のワーカーを使用しても同じように機能しますか? Celery は構成の変更を複数のワーカーにどのように伝達しますか? これに関するドキュメントには何も見つかりませんでした。
PS私はFlaskを使用しているのでdjango-celery
、私には選択肢がありません.