基于xxl-jbo 实现springboot 的分布式任务调度的代码
时间: 2024-02-28 19:53:55 浏览: 108
SpringBoot与Quartz集成实现分布式定时任务集群的代码实例
以下是一个基于 xxl-job 实现 Spring Boot 分布式任务调度的示例代码:
1. 添加依赖
在 pom.xml 文件中添加以下依赖:
```
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${xxl.job.version}</version>
</dependency>
```
2. 配置文件
在 application.properties 文件中添加以下配置:
```
xxl.job.admin.address=http://your_admin_address
xxl.job.executor.appname=your_app_name
xxl.job.executor.address=your_exec_address
xxl.job.executor.ip=
xxl.job.executor.port=9999
xxl.job.accessToken=
```
其中,`xxl.job.admin.address` 为 xxl-job-admin 的地址,`xxl.job.executor.appname` 为应用名称,`xxl.job.executor.address` 为应用地址,`xxl.job.executor.ip` 为应用 IP 地址(可选),`xxl.job.executor.port` 为应用端口,`xxl.job.accessToken` 为访问令牌(可选)。
3. 创建任务
创建一个继承 `IJobHandler` 接口的任务类,如下所示:
```
@JobHandler(value="demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
// 执行任务逻辑
return ReturnT.SUCCESS;
}
}
```
其中,`@JobHandler` 注解指定任务名称,`execute` 方法为任务执行逻辑。
4. 注册任务
在 Spring Boot 启动类中注册任务,如下所示:
```
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// 启动任务调度器
XxlJobExecutor executor = new XxlJobExecutor();
executor.setAdminAddresses("http://your_admin_address");
executor.setAppName("your_app_name");
executor.setIp("");
executor.setPort(9999);
executor.start();
SpringApplication.run(Application.class, args);
}
}
```
其中,`XxlJobExecutor` 类为 xxl-job 的任务调度器,通过 `setAdminAddresses` 方法设置 xxl-job-admin 的地址,通过 `setAppName` 方法设置应用名称,通过 `setIp` 方法设置应用 IP 地址(可选),通过 `setPort` 方法设置应用端口,通过 `start` 方法启动任务调度器。
5. 配置任务
在 xxl-job-admin 管理界面中配置任务,指定任务名称、任务组、任务描述、任务执行器、执行参数、调度方式等信息。
6. 运行任务
在 xxl-job-admin 管理界面中启动任务,任务会被调度器自动执行。
阅读全文