xxl-job如何给定时任务开启多线程写一个代码示例
时间: 2023-08-02 19:43:25 浏览: 89
下面是一个使用xxl-job定时任务开启多线程的代码示例:
```java
@XxlJob("multiThreadJobHandler")
public void multiThreadJobHandler() {
// 获取任务参数
String param = XxlJobHelper.getJobParam();
// 模拟需要处理的数据列表
List<String> dataList = Arrays.asList("data1", "data2", "data3", "data4", "data5");
// 设置分批处理的数据大小
int batchSize = 2;
// 计算需要分成的批次数
int batchCount = (int) Math.ceil((double) dataList.size() / batchSize);
// 开启多线程处理数据
for (int i = 0; i < batchCount; i++) {
int fromIndex = i * batchSize;
int toIndex = Math.min(fromIndex + batchSize, dataList.size());
List<String> subList = dataList.subList(fromIndex, toIndex);
// 开启线程处理子集数据
new Thread(() -> {
// 处理子集数据
for (String data : subList) {
// 执行任务逻辑
// ...
}
}).start();
}
}
```
在上面的代码中,我们使用xxl-job的注解`@XxlJob`来标记任务处理方法。在方法中,我们可以获取任务参数`param`和需要处理的数据列表`dataList`。然后,我们将数据列表分成大小为`batchSize`的多个子集,并开启多个线程并发处理这些子集数据。注意,开启线程时需要使用`new Thread()`方式,并且在线程内部处理子集数据逻辑。