Luigi工作流程:具有“软”依赖关系的任务?

问题描述 投票:1回答:1

我正在使用Luigi进行依赖性解析,并且效果很好。

我还应该将Luigi用于“软”依赖吗?

让我解释一下。假设我当前的任务下载并处理了一些日期的数据。假设在那之后,我想运行一个遍历所有数据并输出一个简单摘要的脚本。不是每个日期一个摘要,而是一个关于所有已下载数据的摘要。

我称此为软依赖性,因为我希望最终脚本在所有日期的数据上运行,但是如果有几个日期无法下载,我仍然希望脚本在其他日期运行。

我应该如何为该用例组织任务,或者这不是Luigi的工作?

luigi
1个回答
0
投票

内部要求:您可以检查文件是否“存在”,如果存在,则可以“屈服”处理该文件的任务。

    内部运行:执行一个宏任务,遍历所有文件,如果文件失败,则仅移至列表中的下一项。
  1. Softfail:如果文件被处理,但文件不存在,则执行成功的任务。如果文件存在,但是在处理过程中发生了某些事情,则使任务失败
  • 优缺点:
  • 1是扩展的好选择,因为您可以并行处理这些文件。只要文件的“检查”时间不会太长。在需求内增加繁琐的工作是不可以的,因为这只会延迟整个依赖图的构建。因此,如果您有一个大图,这是不好的

    2是最简单的实现,因为所有处理都在1个任务中,并且更容易输出1个摘要文件。

    3是我的最爱。您不需要在内部进行任何繁重的工作。它可以缩放为大图,并且您可以并行执行很多处理。这里的一大弊端是,它可能导致那些软故障中的无声错误。如果你能做到这一点,我想你有一个赢家

  • © www.soinside.com 2019 - 2024. All rights reserved.