在我的 Django 应用程序中访问 Celery 的子进程标准输出和标准错误

Access Celery's subprocess stdout and stderr in my Django app

我将 Celery 放入我的 Django 应用程序中,以便其他两个 python 程序可以通过 subprocess 方法处理来自我的 Django 应用程序的输入。 我的问题是如何访问子进程的输出?那时我只制作了一个 python 程序,我通过 stdout 和 stderr 访问日志文件(两个应用程序的输出)。当我在 Django 中使用 Celery 时,这是一样的吗? CELERY_RESULT_BACKEND 的值(如果我应该在此处分配我的 Django 应用程序的数据库)是否受日志文件影响?

到目前为止我所做的是:

  1. 通过我的 tasks.py

  2. 中的子进程访问这两个应用程序
  3. 我暂时将经纪人的数据库 Redis 指定为 CELERY_RESULT_BACKEND 的数据库。我的计划是获取日志文件,然后将它们保存到我的 Django 应用程序的数据库中,这样我就可以访问该数据库了。

你能提供一些帮助吗?

通常,您只关心任务结果,即 celery 任务的 return 值,存储在您的 result_backend for at least result_expires 时间内(通常为 1 天)。因此,如果您想访问任何特定任务的结果,您只需使用任务 ID 即可。