如何配置和运行celerybeat

4

我刚开始学习使用celery,尝试运行一个定期任务。

已配置*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 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秒钟打印一次该行作为周期性任务?

谢谢。

1个回答

3
CELERY_IMPORTS=("tasks",)添加到celeryconfig.py中,然后运行celerybeat。

2
同时运行celeryd,每两秒钟打印一次“Running periodic task!” - mushfiq
嘿 @mushfiq - 你能帮忙吗?我正在通过 celery multi 运行 celery beat,并使用 --beat 和 --schedule 选项,但是没有任务被执行。我尝试使用 @app.periodic_task 装饰任务,并使用 CELERY_IMPORTS=("tasks",),但是没有成功。 - Greg0ry
@Greg0ry,你的代理服务器正常吗?你正在使用哪个版本的Celery? - mushfiq
我找到了 - 最后发现是我错误地声明了CELERY_IMPORTS(当然应该是app.conf/CELERY_IMPORTS)。谢谢! - Greg0ry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接