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

添加CELERY_IMPORTS=("tasks",)到你的 celeryconfig.py 然后运行 ​​celerybeat。

于 2012-08-03T09:03:02.330 回答