芹菜:启动时的启动任务

时间:2013-01-29 09:03:24

标签: python django celery crontab

我有一个需要在Celery启动时启动的任务。接下来通过回调/ eta每5分钟运行一次此任务。

我找到了一些关于它的线索,但似乎没有任何东西可以用于Celery 3。

感谢您的帮助, 阿诺。

2 个答案:

答案 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