我想将我自己开发的任务队列系统转换为基于 Celery 的任务队列,但我目前拥有的一项功能让我有些苦恼。
现在,我的任务队列操作非常粗糙;我运行作业(生成数据并将其上传到另一台服务器),使用 Nose 日志捕获库的变体收集日志记录,然后将任务的日志记录作为详细结果记录存储在应用程序数据库中。
我想将其分解为三个任务:
- 收集数据
- 上传数据
- 报告结果(包括前两个任务的所有日志记录)
这里真正的关键是日志收集。现在,使用日志捕获,我对在数据生成和上传过程中进行的每个日志调用都有一系列日志记录。这些是诊断目的所必需的。鉴于任务甚至不能保证在同一个进程中运行,尚不清楚我将如何在 Celery 任务队列中完成此任务。
我对这个问题的理想解决方案将是一种微不足道且理想的微创方法,用于在前任任务 (1、2) 期间捕获所有日志记录并使其可用于报告任务 (3)
我是否最好保持对我的任务定义的粗粒度,并将所有这些工作放在一个任务中?或者有没有办法传递现有的捕获日志以便在最后收集它?