Spring Boot项目集成xxl-job
这里提供将Spring Boot项目集成xxl-job的完整步骤:
- 在Spring Boot项目中添加xxl-job的依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.2.0</version>
</dependency>
- 在Spring Boot启动类中添加@EnableXXLJob注解启用xxl-job:
@EnableXXLJob
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 实现IJobHandler接口编写任务处理逻辑,如:
@Component
public class JobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
XxlJobLogger.log("XXL-JOB, Hello World.");
return SUCCESS;
}
}
- 配置xxl-job核心配置项,如:
xxl:
job:
admin:
addresses: http://127.0.0.1:8080/xxl-job-admin # 管理后台地址
accessToken: "" # 执行器登陆令牌
executor:
appname: sample-spring-boot-executor # 执行器AppName
address: "" # 执行器地址,为空则自动获取
ip: "" # 执行器IP,默认为空
port: 0 # 执行器Port,小于等于0则自动获取
-
构建Spring Boot项目并运行。执行器会自动注册到管理后台,在管理后台会显示两条新任务数据(默认任务组下的两个任务)。
-
登陆管理后台(默认账号admin/123456),在任务管理菜单下配置您的业务任务,选择POBJ类型,JobHandler为刚才编写的任务类。
-
启动一个HTTP客户端(Postman等),发起POST请求:http://localhost:8080/xxl-job-admin/api/trigger?jobName=test&jobGroup=default
-
查看执行器日志,会打印出“XXL-JOB, Hello World.”,表示任务执行成功。
-
至此,Spring Boot项目集成xxl-job完成,可以在xxl-job平台管理和调度您的Spring Boot应用!
docker安装xxl-job
- 从Docker Hub拉取xxl-job镜像:
bash
docker pull xuxueli/xxl-job-admin
docker pull xuxueli/xxl-job-executor
- 创建数据库(MySQL),导入SQL脚本xa_job.sql,并创建容器:
bash
docker run -p 3306:3306 --name xxl-job-mysql \
-v $PWD/xa_job.sql:/docker-entrypoint-initdb.d/xa_job.sql \
-e MYSQL_ROOT_PASSWORD=root
-d mysql:5.7
- 配置并启动Admin容器:
bash
docker run -p 8080:8080 --name xxl-job-admin \
-e PARAMS="--spring.datasource.url=jdbc:mysql://xxl-job-mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8 --server.port=8080" \
-d xuxueli/xxl-job-admin
- 配置并启动Executor容器:
bash
docker run --name xxl-job-executor --link xxl-job-admin \
-e PARAMS="--admin.addresses=http://xxl-job-admin:8080/xxl-job-admin --admin.access-token=access-token --executor.appname=xxl-job-executor-docker" \
-d xuxueli/xxl-job-executor
-
访问管理后台:http://localhost:8080,默认账号admin/123456。在任务管理页面会显示两条默认任务。
-
发起任务调度,观察日志验证任务执行。常见问题与解决方法:
- 1. xxl-job-executor注册失败:确认管理后台地址参数--admin.addresses正确,网络互通,访问令牌--admin.access-token与管理后台注册的Executor令牌一致。
- 2. 任务执行失败或没有日志:确认日志目录/logs在Executor容器中有读写权限;检查Docker日志,看是否有异常。重新构建Executor镜像或容器。
- 3. 无法访问管理后台:确认管理后台端口-p 8080:8080映射正确,网络互通。检查Docker日志查找异常信息。
- 4. 其他问题:可参考xxl-job官方文档进行排查。也可在回复中提出问题,我会提供针对性解答。