Python 芹菜计划任务中的打印语句不';t出现在终端

Python 芹菜计划任务中的打印语句不';t出现在终端,python,celery,Python,Celery,当我运行芹菜-A任务2.芹菜工人-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.updat

当我运行
芹菜-A任务2.芹菜工人-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)
    },
}
这是凝视工人并敲打后的唯一输出:

[任务]
. 任务2.add
[信息/节拍]节拍:开始。。。
[INFO/MainProcess]已连接到amqp://guest:**@127.0.0.1:5672//
[INFO/MainProcess]混合:搜索邻居
[INFO/MainProcess]mingle:独自一人

确保为计划任务运行celery beat worker:

celery beat --app app.celery

检查此处的文档:

您编写了计划,但没有将其添加到芹菜配置中。所以beat没有看到要发送的预定任务。下面的示例使用来自对象(\uuuu name\uuuu)的
celery.config\u从当前模块获取配置值,但您也可以使用任何其他配置方法

正确配置后,您将看到来自beat的关于发送计划任务的消息,以及worker接收和运行这些任务时这些任务的输出

from celery import Celery
from datetime import timedelta

celery = Celery(__name__)
celery.config_from_object(__name__)

@celery.task
def say_hello():
    print('Hello, World!')

CELERYBEAT_SCHEDULE = {
    'every-second': {
        'task': 'example.say_hello',
        'schedule': timedelta(seconds=5),
    },
}
$Cellery-A示例。芹菜工人-B-l信息
[任务]
. 打个招呼
[2015-07-15 08:23:54350:信息/节拍]节拍:开始。。。
[2015-07-15 08:23:54366:INFO/MainProcess]已连接到amqp://guest:**@127.0.0.1:5672//
[2015-07-15 08:23:54377:INFO/MainProcess]mingle:搜索邻居
[2015-07-15 08:23:55385:INFO/MainProcess]混合:独自一人
[2015-07-15 08:23:55411:警告/主流程]celery@netsec-ast-15准备好了。
[2015-07-15 08:23:59471:INFO/Beat]调度程序:每秒发送一次到期任务(例如,打招呼)
[2015-07-15 08:23:59481:INFO/MainProcess]收到的任务:示例。打招呼[2a9d31cb-fe11-47c8-9aa2-51690d47c007]
[2015-07-15 08:23:59483:警告/工人-3]你好,世界!
[2015-07-15 08:23:59484:INFO/MainProcess]任务示例。向[2a9d31cb-fe11-47c8-9aa2-51690d47c007]问好成功0.0012782540870830417s:无

在4.1.0版中,必须向
任务.py
文件中添加
记录器
,如下所示:

from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)


@task(name="multiply_two_numbers")
def mul(x, y):
    total = x * (y * random.randint(3, 100))
    #HERE:
    logger.info('Adding {0} + {1}'.format(x, y))
    return total
如果您需要更多信息,请在此处的文档中注明:

我在没有运气的情况下运行了该程序,该工作人员将自动为您设置日志记录。