xxl-job任务调度成功,但是执行结果失败问题

xxl-job任务调度成功,但是执行结果失败问题

在跟着知乎上面的一个大佬入门xxl-job的时候,发现了一个小坑
文章链接(https://zhuanlan.zhihu.com/p/263051022)这篇文章基本能带你入门xxl-job了, 如果有能力直接去GitHub上面看教程也非常详细。(https://www.xuxueli.com/xxl-job/#5.8%20%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E7%BB%93%E6%9E%9C)

以下是该文章的demo的代码, 采用的是bean模式(方法模式), 一个@xxljob注解修饰的方法就是一个job。在启动执行和调度中心之后,在调度中心添加任务并且执行, 可以看到调度中心的调度日志显示调度成功。
在这里插入图片描述
一开始我没发现什么问题,还以为是因为我这个是周期性执行任务不会一下子成功。(后面想想好蠢, 周期性任务每次执行都有结果的) 后面想测试子任务的执行的时候发现了问题。子任务必须等待父任务成功之后才能执行。而我发现我任务永远无法成功, 查看日志也是一直加载的状态。如下:
在这里插入图片描述
而此时我发现了xxl-job的源码中自带了测试案例:
在这里插入图片描述
于是就启动并且尝试调度,结果发现成功了。于是开始比较两者代码的不同。

知乎代码:

@Component
public class XxlJobDemoHandler {
    /**
     * Bean模式,一个方法为一个任务
     * 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
     * 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
     * 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
     */
    @XxlJob("demoJobHandler")
    public ReturnT<String> demoJobHandler(String param) throws Exception {
        XxlJobLogger.log("java, Hello World~~~");
        XxlJobLogger.log("param:" + param);
        return ReturnT.SUCCESS;
    }
}

官方源码

@Component
public class SampleXxlJob {
    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);


    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("demoJobHandler")
    public void demoJobHandler() throws Exception {
        XxlJobHelper.log("XXL-JOB, Hello World.");

        for (int i = 0; i < 5; i++) {
            XxlJobHelper.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        // default success
    }
    }

然后发现两者的日志工具不同一个是XxlJobLogger(知乎), 一个是XxlJobHelper,然后点进去看时间:
在这里插入图片描述
在这里插入图片描述
显然xxljobhelper更新。xxljobhelper也是com.xxl.job.core(xxl的工具jar包)中的类,于是查看maven中央仓库,com.xuxueli最新版本为2.3.0,然后把pom文件中的依赖改为

com.xuxueli
xxl-job-core
2.3.0

然后就能成功引入xxljobhelper工具类,使用这个日志工具类,任务就能成功了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值