从那以后我可能错过了什么 propagate-configuration
似乎不适合我。
我有一个基本的工作流程 base.xml
,配置为:
<global>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>application-config.xml</job-xml>
<configuration>
<property>
<name>paths.prefix.metadata</name>
<value>${nameNode}${fimProcessingMetadataPath}</value>
</property>
</configuration>
</global>
在这个文件中,我定义了如下子工作流:
<action name="srv_a">
<sub-workflow>
<app-path>${nameNode}${workflowPath}/a.xml</app-path>
<propagate-configuration />
</sub-workflow>
<ok to="b" />
<error to="kill" />
</action>
<action name="srv_b">
<sub-workflow>
<app-path>${nameNode}${workflowPath}/b.xml</app-path>
<propagate-configuration />
</sub-workflow>
<ok to="c" />
<error to="kill" />
</action>
// Here there are many sub-workflows like these.
但是在我的代码里,我找不到 paths.prefix.metadata
属性-它找不到它。
java.lang.IllegalArgumentException: Mandatory property property is not set.
Please provide paths.prefix.metadata
如果我再给它下个定义 a.xml
作为它自己的财产,我可以访问它。
那么,如何从 base.xml
子工作流的定义?我从文件中了解到:
传播配置标志(如果存在)指示应将工作流作业配置传播到子工作流。
但它似乎没有到达子工作流。为什么?全局配置不传播到子工作流不是预期的行为吗?
2条答案
按热度按时间q43xntqr1#
我也遇到了同样的问题。经过一番打乱,我发现的解决方法是在basexml的子工作流中添加一个配置部分。配置部分中的属性将被传递给子工作流,例如:
qlfbtfca2#
仅适用于传递job.properties文件。要将全局部分的变量传递给子工作流,我们需要在子工作流的部分内部传递。