Dam*_*zuk 1 celery celery-task django-celery
我有正在运行的 Celery 3.1 应用程序,它记录了一些敏感信息。理想情况下,我希望有相同的日志,但没有结果部分。
目前它看起来像:
worker_1 | [2019-12-10 13:46:40,052: INFO/MainProcess] Task xxxxx succeeded in 13.19569299298746s: yyyyyyy
Run Code Online (Sandbox Code Playgroud)
我想拥有:
worker_1 | [2019-12-10 13:46:40,052: INFO/MainProcess] Task xxxxx succeeded in 13.19569299298746s
Run Code Online (Sandbox Code Playgroud)
怎么做?
编辑:看来这可以完成这项工作:https://docs.celeryproject.org/en/3.1/reference/celery.worker.job.html#celery.worker.job.Request.success_msg但我不知道如何来实际使用它。
为了防止它在不久的将来对任何人有用,我发现在 Celery 4.4success_msg中 Request 类已被移至应用程序跟踪器。
幸运的是,这似乎可以在 Django 应用程序中轻松覆盖,celery.py如下所示:
from celery.app import trace
trace.LOG_SUCCESS = """\
Task %(name)s[%(id)s] succeeded in %(runtime)ss\
"""
Run Code Online (Sandbox Code Playgroud)
当然,您可以将其更改为您喜欢的任何内容,这只是删除返回值部分。完整的上下文在这里。