【发布时间】:2019-08-19 18:23:57
【问题描述】:
我有一个用于运行测试的应用程序/网站。每当我运行测试时,都会创建一个 Celery 任务,并且该任务会经历运行实际测试的过程。测试会联系第 3 方服务器,因此任务可能失败或挂起的原因有很多。当一切都在本地运行时,这一切都很好;我可以直接访问stdout 和stderr——它们会直接出现在我用来启动 Celery 工人的终端上。如果出现错误、挂断或任何其他类似情况,我可以直接看到并处理它,并确保它在未来得到妥善处理。
最终,这将托管在独立于我的计算机的服务器上,这就是问题开始的地方:
我想要一种方法来访问特定于任务的日志到 stdout 和 stderr(最好是实时的)。我实现了Flower,认为它可能会这样做,但似乎没有。我曾考虑将日志保存到一个文件中,每个任务一个文件,并在我的网站上包含一个“查看日志”按钮链接,这样我就可以看到我在本地看到的日志——但这很麻烦。也许我可以这样做:为每个正在运行的任务生成一个链接,并使用 javascript 更新该链接中的页面以及日志文件的内容?
我进行了一些研究,并没有发现太多这种类型的日志记录方式。有人介意给我指出正确的方向吗?
【问题讨论】:
标签: django logging celery django-celery flower