我使用 django 作为 Web 框架。我需要一个可以执行同步和异步(批处理任务)任务链的工作流引擎。我发现 celery 和 luigi 作为批处理工作流程。我的第一个问题是这两个模块之间有什么区别。
Luigi 允许我们重新运行失败的任务链,并且只有失败的子任务才能重新执行。 celery 呢:如果我们重新运行链(在修复失败的子任务代码之后),它是否会重新运行已经成功的子任务?
假设我有两个子任务。第一个创建一些文件,第二个读取这些文件。当我将这些放入 celery 链中时,由于第二个任务中的错误代码,整个链失败。当我在第二个任务中修复代码后重新运行链时会发生什么?第一个任务会尝试重新创建这些文件吗?
最佳答案
(我是路易吉的作者)
Luigi 不适用于同步低延迟框架。它适用于运行数小时或数天的大型批处理过程。因此,我认为对于您的用例,Celery 实际上可能会稍微好一些
关于基于 Python 的异步工作流模块 : What is difference between celery workflow and luigi workflow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21967398/