当我运行celery -A tasks2.celery worker -B
时,我想看到“芹菜任务”每秒打印一次。目前没有打印任何内容。为什么这不起作用?
from app import app
from celery import Celery
from datetime import timedelta
celery = Celery(app.name, broker='amqp://guest:@localhost/', backend='amqp://guest:@localhost/')
celery.conf.update(CELERY_TASK_RESULT_EXPIRES=3600,)
@celery.task
def add(x, y):
print "celery task"
return x + y
CELERYBEAT_SCHEDULE = {
'add-every-30-seconds': {
'task': 'tasks2.add',
'schedule': timedelta(seconds=1),
'args': (16, 16)
},
}
这是盯着工人殴打之后的唯一输出:
[tasks]
. tasks2.add
[INFO/Beat] beat: Starting...
[INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[INFO/MainProcess] mingle: searching for neighbors
[INFO/MainProcess] mingle: all alone
你写了日程表,但没有添加到芹菜配置中。所以beat没有看到要发送的预定任务。下面的示例使用
celery.config_from_object(__name__)
从当前模块获取配置值,但您也可以使用任何其他配置方法。正确配置后,您将看到beat发出的有关发送计划任务的消息,以及工人接收和运行这些任务时这些任务的输出。
在版本4.1.0中,必须将
logger
添加到task.py
文件中,如下所示:如果您需要更多信息,请在此处的文档中说明: http://docs.celeryproject.org/en/latest/userguide/tasks.html
确保您运行芹菜殴打工人为安排的任务:
在这里检查文档:http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#starting-the-scheduler
相关问题 更多 >
编程相关推荐