如何禁用 celery 任务结果记录?

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但我不知道如何来实际使用它。

Sam*_*lls 5

为了防止它在不久的将来对任何人有用,我发现在 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)

当然,您可以将其更改为您喜欢的任何内容,这只是删除返回值部分。完整的上下文在这里