xxj-job项目集成到springBoot
源码:http://www.xuxueli.com/xxl-job/#/?id=%E4%B8%80%E3%80%81%E7%AE%80%E4%BB%8B
一初始化数据库
脚本位置/xxl-job/doc/db/tables_xxl_job.sql
xxl-job-admin:调度中心
xxl-job-core:公共依赖
二.配置调度中心项目
调度中心项目:xxl-job-admin
调度中心配置
配置文件地址
/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties
1-5行 配置数据库链接
16-17是登录账号密码
三.部署调度中心项目
可直接部署到tomcat下
访问地址ip/域名+端口+项目名(xxl-job-admin)
四.配置部署执行器项目(springBoot项目为例)
引入maven依赖
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>1.9.1</version> </dependency> |
@Configuration @ComponentScan(basePackages = "com.dc.config.jobhandler") public class XxlJobConfig { private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}") private String adminAddresses; @Value("${xxl.job.executor.appname}") private String appName; @Value("${xxl.job.executor.ip}") private String ip; @Value("${xxl.job.executor.port}") private int port; @Value("${xxl.job.accessToken}") private String accessToken; @Value("${xxl.job.executor.logpath}") private String logPath; private int logRetentionDays=-1;//Log文件定期清理 @Bean(initMethod = "start", destroyMethod = "destroy") public XxlJobExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobExecutor xxlJobExecutor = new XxlJobExecutor(); xxlJobExecutor.setAdminAddresses(adminAddresses); xxlJobExecutor.setAppName(appName); xxlJobExecutor.setIp(ip); xxlJobExecutor.setPort(port); xxlJobExecutor.setAccessToken(accessToken); xxlJobExecutor.setLogPath(logPath); xxlJobExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobExecutor; }
} |
五.开发任务代码
@JobHandler(value = "exjobHandler") @Component public class ExJobHandler extends IJobHandler {
@Override public ReturnT<String> execute(String param) throws Exception { System.out.println("启动"); return SUCCESS; }
}
|
六.执行器配置
application.yml配置说明
5行是中心项目地址 执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调"。
6-8行是执行器"AppName"和地址信息配置:AppName执行器心跳注册分组依据;地址信息用于"调度中心请求并触发任务"和"执行器注册"。执行器默认端口为9999,执行器IP默认为空表示自动获取IP (port是一个内置的jetty服务端口)
9行是执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限
xxl: job: admin: addresses: http://192.168.1.212:8080/xxl-job-admin executor: appname: xxl-job-executor-sample ip: 192.168.1.212 port: 9999 logpath: /data/applogs/xxl-job/jobhandler accessToken: |
启动执行器项目、调度中心项目
登录调度中心,点击新建任务
说明:JobHandler是任务代码中@JobHandler注解value的值
触发执行