我刚开始学习使用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秒钟打印一次该行作为周期性任务?
谢谢。
@app.periodic_task
装饰任务,并使用CELERY_IMPORTS=("tasks",)
,但是没有成功。 - Greg0ry