oozie action配置retry-max失效

本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
有同事反应,使用oozie编写wf脚本时, 设置retry-max=15(重试次数),并没有生效, 无论设置多少, 都仅仅重试3次.

<workflow-app name="AOF_ETL_JSS_WF" xmlns="uri:oozie:workflow:0.4">
    <start to="java-node"/>
    <action name="java-node" retry-max="15" retry-interval="5">
                ....
    </action>

    <kill name="fail">
        <message>shell failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

日志:

ACTION[0011363-150709161615757-oozie-jd_a-W@:start:] Action user retry max [3] is over system defined max [3], re-assign to use system max.

究其原因为, oozie-site.xml中retry设置为3, 故此action中设置大于3的数值,都默认为3.
oozie 源码:
LiteWorkflowStoreService.java

private static int getUserRetryMax(NodeHandler.Context context) throws WorkflowException {
        XLog log = XLog.getLog(LiteWorkflowStoreService.class);
        Configuration conf = Services.get().get(ConfigurationService.class).getConf();
        int ret = conf.getInt(CONF_USER_RETRY_MAX, 0);
        int max = ret;
        String userRetryMax = context.getNodeDef().getUserRetryMax();

        if (!userRetryMax.equals("null")) {
            try {
                ret = Integer.parseInt(userRetryMax);
                if (ret > max) {
                    // 如果action重试大于设定最大max,则选择oozie-site.xml的值.
                    ret = max;
                    log.warn(ErrorCode.E0820.getTemplate(), ret, max);
                }
            }
            catch (NumberFormatException nfe) {
                throw new WorkflowException(ErrorCode.E0700, nfe.getMessage(), nfe);
            }
        }
        else {
            ret = 0;
        }
        return ret;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值