Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oozie java操作重试选项_Java_Oozie - Fatal编程技术网

Oozie java操作重试选项

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>

我尝试每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>
            <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;
}

请澄清当前配置不适用于您的原因。