在我的芹菜中,我尝试在任务中打印,但即使在控制台中我似乎也无法输出数据。
这是我的结构:
/app.py
@app.route('//create', methods = ['POST'])
def create_file():
request.form .......
callback = build_file.s(name, address)
header = [ send_param.s( id, key ) for key in request_api.keys() ]
result = chord(header)(callback)
@celery.task(name='app.send_param', routing_key='send_param', queue='send_param', retry=False, bind=True)
def send_param(seld, id, key):
//do something
print 'NOT WORKING'
@celery.task(name='app.build_file', routing_key='send_param', queue='send_param', retry=False, bind=True)
def build_file(seld, name, address):
//do something
print 'NOT WORKING'
在我的create_file函数中打印时,它会打印,但在我的任务中它不会。
答案 0 :(得分:0)
最直接的解决方案是:
1)配置一个Logger实例,该实例将捕获logger.info()
(和其他日志级别)的所有输出并将其放入本地文件或仅stdout
2)配置时,设置
app.conf.update(CELERYD_HIJACK_ROOT_LOGGER=False)
阻止Celery删除任何先前配置的记录器(更多信息:http://docs.celeryproject.org/en/latest/configuration.html#logging)。
另一种选择可能是使用Siglans:http://docs.celeryproject.org/en/latest/userguide/signals.html
但是它涉及的更多一点,可能在你的情况下有点过分了。