XxlJobExecutor调用:xxl-job提供了XxlJobExecutor类,可以在任务代码中通过该类的run方法调用其他任务。这种方式可以直接调用其他任务的执行方法,并且可以获取到调用结果,使用起来比较简单。但需要在调用任务的JobHandler类中配置执行器id和任务id。代码演示一下操作流程
时间: 2024-03-05 19:52:28 浏览: 59
以下是使用XxlJobExecutor调用其他任务的操作流程:
1. 首先,在调用任务的JobHandler类中,添加XxlJobExecutor依赖,并在execute方法中调用其他任务:
```java
@Component
public class MyJobHandler {
@Autowired
private XxlJobExecutor xxlJobExecutor;
public ReturnT<String> execute(String param) throws Exception {
// 调用其他任务
int jobId = 10086;
String executorParam = "executorParam";
ReturnT<String> result = xxlJobExecutor.run(jobId, executorParam);
String data = result.getData();
// 处理调用结果
// ...
return ReturnT.SUCCESS;
}
}
```
2. 在调用任务的JobHandler类中配置执行器id和任务id,以便XxlJobExecutor能够正确调用目标任务。配置方式如下:
```java
@XxlJob("myJobHandler")
@XxlJobExecutor(registJobHandler=true, jobHandler="myJobHandler")
public class MyJobHandler {
@Autowired
private XxlJobExecutor xxlJobExecutor;
public ReturnT<String> execute(String param) throws Exception {
// 调用其他任务
int jobId = 10086;
String executorParam = "executorParam";
ReturnT<String> result = xxlJobExecutor.run(jobId, executorParam);
String data = result.getData();
// 处理调用结果
// ...
return ReturnT.SUCCESS;
}
}
```
在这个示例中,我们在MyJobHandler类上添加了@XxlJob注解,并指定了该任务的执行方法为myJobHandler。同时,我们在类上添加了@XxlJobExecutor注解,并将registJobHandler设置为true,表示要注册该任务的执行方法。最后,我们在类上指定了jobHandler为myJobHandler,表示该任务的执行方法为MyJobHandler类中的execute方法。
以上就是使用XxlJobExecutor调用其他任务的操作流程,需要注意的是,调用任务的执行方法也需要在xxl-job中注册并配置好执行器id和任务id,否则无法正确调用。
阅读全文