【问题标题】:Run luigi tasks in parallel并行运行 luigi 任务
【发布时间】:2020-01-02 10:17:55
【问题描述】:

我有一个包含多个 luigi 任务的应用程序(我没有编写那个应用程序)。现在我想介绍另一个任务,在一个进程的中间,它将监控一些 AWS 实例。该任务一旦开始,应该一直运行到结束,并且它必须与其他任务并行运行。您可以在链接中查看图片以便更好地理解。 Link to the schema 我查看了文档,但找不到解决方案。我是 luigi 的新手,我可能错过了一些东西。

【问题讨论】:

    标签: python luigi


    【解决方案1】:

    我不认为你错过了什么。我不认为 luigi 涵盖了那个用例。但是,您可以做的一件事是让任务 3 只需要任务 2,让任务 4 需要任务 2 而不是任务 3,并让任务 3 持续运行一些代码并监视任务 5 的输出以了解它应该何时关闭。这不是最漂亮的,但应该可以。

    但是,我可以预见到一些问题(这就是 luigi 可能不支持它的原因)。如果您有足够的任务 3 正在运行,您可能永远无法完成工作流,因为任务 4 永远不会运行。这就是为什么不建议这样做的原因,因为您实际上是在创建依赖图不知道的隐藏需求。另一个问题是,在您完成所有任务 5 之前,任务 3 可能永远不会运行,在这种情况下,它是无用的。

    我的最后一个想法是,在任务 2 结束或任务 4 开始时,您根本不需要任务 3,而是在调度程序节点上启动一个进程(简单地使用 luigi.Task 而不是扩展来使工作在集群上的另一个节点上运行)。然后在任务 5 结束时删除该进程。不过,您还需要考虑其他一些边缘情况,以确保流程不会运行得太短或太长。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多