我有一个正在运行的Celery 3.1应用程序,该应用程序记录了一些敏感信息。理想情况下,我将拥有相同的日志,但没有结果部分。
当前看起来像:
worker_1 | [2019-12-10 13:46:40,052: INFO/MainProcess] Task xxxxx succeeded in 13.19569299298746s: yyyyyyy
我想要:
worker_1 | [2019-12-10 13:46:40,052: INFO/MainProcess] Task xxxxx succeeded in 13.19569299298746s
该怎么做?
修改: 看来这可以完成工作:https://docs.celeryproject.org/en/3.1/reference/celery.worker.job.html#celery.worker.job.Request.success_msg,但我不知道如何实际使用它。
答案 0 :(得分:1)
以防万一它对不久的将来有用,我在Celery 4.4中发现Request类中的success_msg
具有been moved to the application tracer。
幸运的是,看起来这很容易在Django应用的celery.py
中覆盖,如下所示:
from celery.app import trace
trace.LOG_SUCCESS = """\
Task %(name)s[%(id)s] succeeded in %(runtime)ss\
"""
您当然可以将其更改为任意值,这只会删除返回值部分。 Full context here。
答案 1 :(得分:0)
答案 2 :(得分:0)
worker_1 | [2019-12-10 13:46:40,052: INFO/MainProcess] 任务 xxxxx 在 13.19569299298746s 成功:yyyyyyy
yyyyyyy 是您的函数返回的结果,删除它只需返回您想要的内容。 在您的情况下,只有 return 会起作用