我刚刚开始使用 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
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 秒后打印该行作为周期性任务?
谢谢。
最佳答案
将 CELERY_IMPORTS=("tasks",)
添加到您的 celeryconfig.py 然后运行 celerybeat。
关于python - 如何配置和运行 celerybeat,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11792101/