三种定时任务中的xxl-job总结
1.xxl-job
一种适合分布式场景的定时任务。
1.1安装xxl-job
用docker-compose来创建。
version: '2' networks: wn_docker_net: external: true services: xxl-job-compose: build: . image: xuxueli/xxl-job-admin:2.3.1 container_name: xxl-job ports: - "9898:8080" environment: PARAMS: '--spring.datasource.url=jdbc:mysql://192.168.92.100:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=123' volumes: - /usr/local/software/xxl-job/logs:/data/applogs networks: wn_docker_net: ipv4_address: 172.18.12.100
[root@localhost ~]#docker-compose up
来运行刚刚编辑好的文件。
记得要开数据库,可以从官网下载sql文件,然后导入到数据库。
这里我们就创建好了xxl-job
1.2xxl-job编程
1.2.1导包
<dependencies> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.1</version> </dependency> </dependencies>
1.2.2配置yml文件
xxl: job: admin: addresses: http://192.168.92.100:9898/xxl-job-admin executor: appname: xxl-job-executor-sample port: 9777 accessToken: default_token
1.2.3配置类
@Configuration public class XxlJobConfig { @Value("${xxl.job.admin.addresses}") private String address; @Value("${xxl.job.executor.appname}") private String appName; @Value("${xxl.job.executor.port}") private int port; @Value("${xxl.job.accessToken}") private String accessToken; @Bean public XxlJobSpringExecutor xxlJobExecutor() { XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(address); xxlJobSpringExecutor.setAppname(appName); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); return xxlJobSpringExecutor; } }
1.2.4创建调度任务
@Component @Slf4j public class MyJobs { @XxlJob("helloXxl") public void helloXxlJob(){ log.debug("hello,xxljob"); } }
1.2.5web管理端设置
点击执行一次来测试是否成功创建xxl-job。
这样我们就是成功创建了xxl-job了。
然后等到我们前面设置的定时时间再看下,如果成功执行,那么就全部执行成功了。