首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查LoadApplicationService的完成状态?

如何检查LoadApplicationService的完成状态?
EN

Stack Overflow用户
提问于 2016-12-29 14:17:33
回答 1查看 1.1K关注 0票数 2

我在工作流中有两个操作节点:javaMainActionjavaMainAction2

我的LoadApplicationService方法在执行后返回成功或失败。

如果返回成功,如何检查响应?

workflow.xml:

代码语言:javascript
复制
<workflow-app name="WorkflowJavaMainAction" xmlns="uri:oozie:workflow:0.1">
    <start to="javaMainAction" />
    <action name="javaMainAction">
        <java>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <main-class>in.augmentiq.maxiq.dataschedular.services.LoadApplicationService</main-class>
            <arg>${workflowAppPath}/javaMainActionInput/schedule_config.properties</arg>
            <arg>${workflowAppPath}/javaMainActionInput/appRequestParams.json</arg>
            <capture-output/>
        </java>
        <ok to="javaMainAction2" />
        <error to="killJobAction" />
    </action>
    <action name="javaMainAction2">
        <java>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <main-class>in.augmentiq.maxiq.dataschedular.services.LoadApplicationService</main-class>
            <arg>${workflowAppPath}/javaMainAction2Input/schedule_config.properties</arg>
            <arg>${workflowAppPath}/javaMainAction2Input/appRequestParams.json</arg>
            <capture-output/>
        </java>
        <ok to="end" />
        <error to="killJobAction" />
    </action>
    <kill name="killJobAction">
        <message>"Killed job due to error: ${wf:errorMessage(wf:lastErrorNode())}"</message>
    </kill>
    <end name="end" />
</workflow-app>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 14:31:10

LoadApplicationService需要将输出写入key=pair格式,例如response=SUCCESS。您可以像这样检查输出:

代码语言:javascript
复制
${wf:actionData("action-name")["key"]}

使用决策控制节点对决策节点进行比较和决策。

编辑注释:如何在java操作中写入属性。

main()方法将属性文件写入oozie.action.output.properties环境变量中指定的路径。参考文献

代码语言:javascript
复制
   public static void main (String[] args)
   {
      String fileName = args[0];
      try{
         File file = new File(System.getProperty("oozie.action.output.properties"));
         Properties props = new Properties();
         props.setProperty("PASS_ME", "123456");

         OutputStream os = new FileOutputStream(file);
         props.store(os, "");
         os.close();
         System.out.println(file.getAbsolutePath());
      }
      catch (Exception e) {
         e.printStackTrace();
      }
   }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41381464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档