基于Python的异步工作流模块:芹菜工作流和luigi工作流有什么区别?

2024-05-26 17:44:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用django作为web框架。我需要一个工作流引擎,可以做同步和异步(批处理任务)的任务链。我发现芹菜和路易吉作为批处理工作流。我的第一个问题是这两个模块之间的区别是什么。

Luigi允许我们重新运行失败的任务链,并且只重新执行失败的子任务。芹菜呢:如果我们重新运行链(在修复失败的子任务代码之后),它会重新运行已经成功的子任务吗?

假设我有两个子任务。第一个创建一些文件,第二个读取这些文件。当我把这些放入芹菜链中时,由于第二个任务中的错误代码,整个链都失败了。在第二个任务中修复代码后重新运行链会发生什么情况?第一个任务会尝试重新创建这些文件吗?


Tags: 模块文件django代码引擎框架web情况
2条回答

(我是路易吉的作者)

Luigi不适用于同步低延迟框架。它适用于运行数小时或数天的大型批处理过程。所以我认为对于你的用例来说,芹菜可能会稍微好一点

更新:正如埃里克所指出的,芹菜是这种情况下更好的选择。

芹菜:

什么是芹菜?

芹菜是一个简单、灵活、可靠的分布式系统,可以处理大量的消息,同时为操作人员提供维护这样一个系统所需的工具。

为什么要用芹菜?

  • 它的使用非常简单,具有许多功能。
  • django芹菜:提供与django良好的整合。
  • 花:芹菜分布式任务队列的实时监控和网络管理。
  • 活动的大型社区(基于Stackoverflow活动、Pyvideos、教程、博客文章)。

路易吉

什么是路易吉?

Luigi(Spotify最近的开源Python框架)是一个Python包,帮助您构建复杂的批处理作业管道。它处理依赖关系解析、工作流管理、可视化、处理故障、命令行集成等等。

为什么要用路易吉?

  • 对Hadoop的内置支持。
  • 通用的,可以用于从简单的任务执行和本地工作站上的监视,到启动处理任务的巨大链,这些任务可以在数天内在多台计算机之间同步运行。
  • Lugi的visualiser:给出了工作流依赖关系图的一个很好的可视化概述。

结论:如果您只需要一个工具来安排任务并运行它们,您可以使用芹菜。如果你正在处理大数据和大处理,你可以去路易吉。

相关问题 更多 >

    热门问题