我有一个需要在Celery启动时启动的任务。接下来通过回调/ eta每5分钟运行一次此任务。
我找到了一些关于它的线索,但似乎没有任何东西可以用于Celery 3。
感谢您的帮助, 阿诺。
答案 0 :(得分:9)
Celery的IRC频道上有人通过使用“worker_ready.connect”信号给我正确的方法:http://docs.celeryproject.org/en/latest/userguide/signals.html#worker-ready
@worker_ready.connect
def at_start(sender, **k):
with sender.app.connection() as conn:
sender.app.send_task('app.modules.task', args,connection=conn, ...)
它现在就像一个魅力!
答案 1 :(得分:0)
您需要在设置中定义:
import djcelery
djcelery.setup_loader()
CELERY_IMPORTS = ("apps.app_name.module.tasks",)
此外,如果你没有instaled芹菜经纪人,你应该安装一个我正在使用RabbitMQ,非常好的教程,如何使用它在芹菜文档中:
http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html
然后从命令行芹菜恶魔开始:
django-admin.py celeryd -v 2 -B -s芹菜-E -l INFO