可以看到,方法上使用了@XxlJob("demoJobHandler")注解来进行任务标识,标明了该方法是一个xxl-job任务,并且任务名为demoJobHandler。该方法的返回值是xxl-job提供的一个封装类ReturnT<T>,请求参数只有一个,类型是String。 这里需要提的一点是在之前的版本中是通过继承IJobHandler和在类上加注解的方式...
自v1.6.2之后,任务执行结果通过 “IJobHandler” 的返回值 “ReturnT” 进行判断;当返回值符合 “ReturnT.code == ReturnT.SUCCESS_CODE” 时表示任务执行成功,否则表示任务执行失败,而且可以通过 “ReturnT.msg” 回调错误信息给调度中心;从而,在任务逻辑中可以方便的控制任务执行结果; 4.5.5. 分片广播 & 动态分...
无返回值方法 如果被@XxlJob注解标记的方法没有返回任何内容,我们可以将方法声明为void类型。例如: @XxlJob("myJobHandler") public void execute() throws Exception { ... } 返回简单类型的方法 如果被@XxlJob注解标记的方法需要返回一个简单类型(如int、String等),我们只需要在方法声明前加上相应的类型即可。
ExecutorBiz.run 方法我们说过了,是走的动态代理,和执行器进行通信,执行器执行结果也是异步处理完,才返回的,而这里看到的 run 方法是同步等待处理结果返回。 我们看下xxl-job是如何同步获取处理结果的:调度器向执行器发出消息后,该线程阻塞。等到执行器处理完毕后,将处理结果返回,唤醒被阻塞的线程,调用处拿到返回值。
我们看下xxl-job是如何同步获取处理结果的:调度器向执行器发出消息后,该线程阻塞。等到执行器处理完毕后,将处理结果返回,唤醒被阻塞的线程,调用处拿到返回值。 动态代理代码如下: //代理类中的触发调用 if(CallType.SYNC == callType) { // future-response set ...
方法的返回值为 ProcessResult,代表了本次 Task 执行的结果,包含 success 和 msg 两个属性,分别用于传递 Task 是否执行成功和 Task 需要返回的信息。 处理器开发示例 单机处理器:BasicProcessor 单机执行的策略下,server 会在所有可用 worker 中选取健康度最佳的机器进行执行。单机执行任务需要实现接口 BasicProcessor,...
原因就是因为,新版本的xxl-job,已经弃用了@JobHandler注解,采用了@XxlJob注解,并且@XxlJob注解只能作用在方法上面哦。 改造步骤: 1、去掉@JobHandler注解 2、去掉 extends IJobHandler 3、方法上加上@XxlJob注解 4、返回值 SUCCESS 改为 ReturnT.SUCCESS ...
这里的pagesize的值是6000,也就是我们经常在说的,XXL-JOB默认支持定时任务数量,这是通过一个公式在进行计算的。 经过作者大量的数据验证,发现大多数定时任务的触发耗时都在 50ms 以内,可以得到qps为20。 在xxl-job-admin的配置文件中,有这么两个默认配置: ...
}//校验方法的返回值类型,必须是ReturnTif(!method.getReturnType().isAssignableFrom(ReturnT.class)) {thrownewRuntimeException("xxl-job method-jobhandler return-classtype invalid, for[" + bean.getClass() + "#"+ method.getName() +"] , " + ...