4

私はセロリを始めたばかりで、定期的なタスクを実行しようとしています。

構成済みの*rabbitmq**にceleryconfig.pyが追加されました。

そして、tasks.pyに次のコードを追加しました。

from celery.decorators import periodic_task
from datetime import timedelta

@periodic_task(run_every=timedelta(seconds=2))
def every_2_seconds():
    print("Running periodic task!")

ターミナルで「celerybeat」と入力してcelerybeatを起動すると、次のメッセージが表示されて実行が開始されます。

celerybeat 
celerybeat v3.0.3 (Chiastic Slide) is starting.
__    -    ... __   -        _
Configuration ->
    . broker -> amqp://arnold@localhost:5672//
    . loader -> celery.loaders.default.Loader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@INFO
    . maxinterval -> now (0s)
[2012-08-03 14:24:52,202: INFO/MainProcess] Celerybeat: Starting...

そしてevery_2_seconds、ターミナルにメソッドの出力がありません。celerybeatコマンド中に実行するアプリまたはタスクを指定する必要があると想定しています。これを行うにはどうすればよいですか?

タスクを指定し、2秒ごとに定期的なタスクとして行を印刷するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

3

celeryconfig.pyに追加CELERY_IMPORTS=("tasks",)してから、celerybeatを実行します。

于 2012-08-03T09:03:02.330 に答える