web-dev-qa-db-ja.com

セロリワーカーとビートロードを1つのコマンドで

セロリワーカーを起動して1つのコマンドでビートする方法はありますか? Fabricを使用した自動展開手順にセロリを追加したいと思います。

私は現在実行しています:

celery -A prj worker -B

に続く

celery -A prj beat -l info -S Django

ただし、最初のコマンドはワーカーを起動し、ワーカーの起動メッセージが表示されるため、次のコマンド(ビートの開始)を実行できません。

起動メッセージが表示されないようにする方法はありますか?または、これらのアクションの両方を1つのコマンドで実行しますか?おそらく、私のDjango configからこれらを開始する方法さえありますか?

ありがとう!

7
zubhav

セロリを使用すると、ワーカーを実行して同じプロセスでビートすることができます(主に開発目的で使用されます)。 celery workerのヘルプを確認してください。

> celery worker -h

...

Embedded Beat Options:
  -B, --beat            Also run the celery beat periodic task scheduler. Please note that there must only be
                        one instance of this service. .. note:: -B is meant to be used for development
                        purposes. For production environment, you need to start celery beat separately.
  -s SCHEDULE_FILENAME, --schedule-filename SCHEDULE_FILENAME, --schedule SCHEDULE_FILENAME
                        Path to the schedule database if running with the -B option. Defaults to celerybeat-
                        schedule. The extension ".db" may be appended to the filename. Apply optimization
                        profile. Supported: default, fair
  --scheduler SCHEDULER
                        Scheduler class to use. Default is celery.beat.PersistentScheduler

したがって、Djangoスケジューラーの使用を含む、組み合わされたコマンドは次のようになります。

celery -A prj worker --beat --scheduler Django --loglevel=info
13
Peter Huitsing