Oozie java操作重试选项
我尝试每1分钟重复一次java操作,最多重试6次。 我尝试了下面的代码Oozie java操作重试选项,java,oozie,Java,Oozie,我尝试每1分钟重复一次java操作,最多重试6次。 我尝试了下面的代码 **Workflow.xml** <workflow-app name="FilePoller" xmlns="uri:oozie:workflow:0.4"> <start to="FilePoller"/> <action name="FilePoller" retry-max="10" retry-interval="1"> <java>
**Workflow.xml**
<workflow-app name="FilePoller" xmlns="uri:oozie:workflow:0.4">
<start to="FilePoller"/>
<action name="FilePoller" retry-max="10" retry-interval="1">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<main-class>com.test.Utils</main-class>
<arg>${input1}</arg>
<arg>${inputDir}</arg>
<archive>lib/filepollingscheduler.jar#filepollingscheduler.jar</archive>
</java>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
**Java code snippet:**
Pattern pattern = Pattern.compile(inputFilePattern);
Matcher matcher = pattern.matcher(path.getName());
if (matcher.find()) {
System.out.println("Matches found");
System.exit(0);
} else {
System.out.println("No matches found");
System.exit(1);
}
**Workflow.xml**
${jobTracker}
${nameNode}
com.test.Utils
${input1}
${inputDir}
lib/filepollingscheduler.jar#filepollingscheduler.jar
操作失败,错误消息[${wf:errorMessage(wf:lastErrorNode())}]
**Java代码片段:**
Pattern=Pattern.compile(inputFilePattern);
Matcher Matcher=pattern.Matcher(path.getName());
if(matcher.find()){
System.out.println(“找到匹配项”);
系统出口(0);
}否则{
System.out.println(“未找到匹配项”);
系统出口(1);
}
如果没有找到匹配项,我想重试该操作
非常感谢您的帮助。我相信捕获输出和决策节点将是您的有用选择。你可以试一试。我做了一些类似的工作,但并不完全符合你的要求 一旦工作流执行,我们应该将输出捕获为{true或false},以确定是否找到匹配项。根据结果,可以决定是再次执行工作流还是停止工作流 通常,System.exit()即使为0,也会导致操作失败 当找到匹配项或引发异常时,应该让main()完成
public static void main(...) {
...
if(!matcher.find())
throw new MatchNotFoundException();
return;
}
请澄清当前配置不适用于您的原因。