Talend - "Die on error" 组件与 tRunjob
Talend - "Die on error" on component vs tRunjob
我有一个带错误处理的 talend 主作业(Single tRunjob),主作业调用一个子作业,它有三个 "tRunjob" 每个都必须在 "On subjob ok" 触发器上一个接一个地执行。为了测试主要作业的错误处理,我给第二个 tRunjob 上的 "tDelimitedinputfile" 组件一个错误的源文件名。当我执行主作业时,不是让主作业成功完成,而是在子作业和主作业中的所有 tRunjob 上启用 "Die on error"。只有在我在第二个作业的 "tDelimitedinputfile" 组件中启用 "Die on error" 之后,主作业才会失败。所以问题是
尽管在 tRunjob 上启用了 "Die on error",我们是否必须在每个组件上手动启用 "Die on error"?
是的。
组件必须将错误转发给作业,如果它本身启用了该选项,则反过来只会将错误转发。
这没有任何缺点。这样做的原因是某些作业或组件不需要任何错误处理。
您不必为所有组件设置 DieOnError。在 TInputFileDelimited 的情况下,如果缺少文件,则不会将其视为错误,除非您选中该框。看起来很奇怪;但这就是这个组件的方式。
始终寻找组件上的复选框,以便了解它们的行为方式。
我有一个带错误处理的 talend 主作业(Single tRunjob),主作业调用一个子作业,它有三个 "tRunjob" 每个都必须在 "On subjob ok" 触发器上一个接一个地执行。为了测试主要作业的错误处理,我给第二个 tRunjob 上的 "tDelimitedinputfile" 组件一个错误的源文件名。当我执行主作业时,不是让主作业成功完成,而是在子作业和主作业中的所有 tRunjob 上启用 "Die on error"。只有在我在第二个作业的 "tDelimitedinputfile" 组件中启用 "Die on error" 之后,主作业才会失败。所以问题是 尽管在 tRunjob 上启用了 "Die on error",我们是否必须在每个组件上手动启用 "Die on error"?
是的。
组件必须将错误转发给作业,如果它本身启用了该选项,则反过来只会将错误转发。
这没有任何缺点。这样做的原因是某些作业或组件不需要任何错误处理。
您不必为所有组件设置 DieOnError。在 TInputFileDelimited 的情况下,如果缺少文件,则不会将其视为错误,除非您选中该框。看起来很奇怪;但这就是这个组件的方式。
始终寻找组件上的复选框,以便了解它们的行为方式。