任务调度平台XXL-JOB使用
2017-12-19 16:27
621 查看
分布式任务调度平台xxl-job是一个开源框架。GitHub上有详细的源码、文档和demo,文档地址是http://www.xuxueli.com/xxl-job/#/?id=%e4%b8%80%e3%80%81%e7%ae%80%e4%bb%8b。里面有详细的介绍。写此博客为了整理思路,巩固加强。
2.1 application.yml的配置文件
yml配置文件加上配置。
其中的”@xxl.job.executor.appname@”等配置是在config_local.properties文件里,参数具体意思参考文档。通常yml里是写具体的参数值,这里用这种方式是如何实现和config_local.properties文件对应的,是通过maven的prefile配置吗?暂时不懂,还需去了解。
编写XxlJobConfig类
写一个任务类,继承IJobHandler。这个类需要在上面的XxlJobConfig里配置的包下?
2.2 application.properties的配置文件
application.properties配置文件加上配置。
然后编写XxlJobConfig类、写一个任务类,继承IJobHandler,同上。到这里就把springboot的配置讲完了。源码里还有和spring整合的demo,也很简单,可以参考。
任务管理添加任务
到此,整合xxl-job就完成了,非常方便实用。
1. 配置部署调度中心。
首先在gitHub上下载源代码,是maven项目。执行tables_xxl_job.sql建表语句。文档里要求mysql5.6+。在mysql5.5也可以执行。需要先建数据库,名字任意。在idea里面启动项目,用的tomcat是8.5.24。成功启动项目。调度中心的配置内容参考文档。注意里面的数据库名称就是自己新建的数据库名了。
2. 配置部署 执行器项目
执行器项目通常指 目前开发的项目。在项目中整合xxl-job任务调度框架,只需要引入一个maven包、配置一下参数和实现接口就可以。非常方便。这里记录一下和springboot的集成。引入
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>1.8.2</version> </dependency>
2.1 application.yml的配置文件
yml配置文件加上配置。
xxl: job: admin: addresses: "@xxl.job.admin.addresses@" executor: appname: "@xxl.job.executor.appname@" ip: "@xxl.job.executor.ip@" port: "@xxl.job.executor.port@" logpath: "@xxl.job.executor.logpath@" accessToken: "@xxl.job.accessToken@"
其中的”@xxl.job.executor.appname@”等配置是在config_local.properties文件里,参数具体意思参考文档。通常yml里是写具体的参数值,这里用这种方式是如何实现和config_local.properties文件对应的,是通过maven的prefile配置吗?暂时不懂,还需去了解。
#xxl-job 调度中心工程的地址 xxl.job.admin.addresses=http://localhost:8999/xxl-job-admin ### xxl-job executor address xxl.job.executor.appname=xxl-job-ots-server xxl.job.executor.ip= xxl.job.executor.port=9946 ### xxl-job log path xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler/ ### xxl-job, access token xxl.job.accessToken=
编写XxlJobConfig类
package com.lancy.task; import com.xxl.job.core.executor.XxlJobExecutor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; /** * xxl-job config * @author xuxueli 2017-04-28 */ @Configuration @ComponentScan(basePackages = "com.lancy.task") //basePackages指向实现了接口IJobHandle的类所在包 public class XxlJobConfig { private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); @Value("${xxl.job.admin.addresses}") private String addresses; @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.executor.logpath}") private String logpath; @Value("${xxl.job.accessToken}") private String accessToken; @Bean(initMethod = "start", destroyMethod = "destroy") public XxlJobExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobExecutor xxlJobExecutor = new XxlJobExecutor(); xxlJobExecutor.setIp(ip); xxlJobExecutor.setPort(port); xxlJobExecutor.setAppName(appname); xxlJobExecutor.setAdminAddresses(addresses); xxlJobExecutor.setLogPath(logpath); xxlJobExecutor.setAccessToken(accessToken); return xxlJobExecutor; } }
写一个任务类,继承IJobHandler。这个类需要在上面的XxlJobConfig里配置的包下?
package com.lancy.task; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.JobHander; import org.springframework.stereotype.Component; @Component @JobHander(value="helloWorld") //@Comonent 把类交给spring容器管理,必须 //@JobHander 唯一标识一个任务。调度中心会查找这个唯一的名称来启动执行此类的execute方法。 public class HelloWorld extends IJobHandler { @Override public ReturnT<String> execute(String... strings) throws Exception { System.out.println("你好呀"); return ReturnT.SUCCESS; } }
2.2 application.properties的配置文件
application.properties配置文件加上配置。
# xxl-job xxl.job.admin.addresses=http://localhost:8999/xxl-job-admin ### xxl-job executor address xxl.job.executor.appname=xxl-job-executor-sample xxl.job.executor.ip= xxl.job.executor.port=9998 ### xxl-job log path xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler/ ### xxl-job, access token xxl.job.accessToken=
然后编写XxlJobConfig类、写一个任务类,继承IJobHandler,同上。到这里就把springboot的配置讲完了。源码里还有和spring整合的demo,也很简单,可以参考。
3. 调度中心配置
添加执行器任务管理添加任务
到此,整合xxl-job就完成了,非常方便实用。
相关文章推荐
- 分布式任务调度平台XXL-JOB
- 分布式任务调度平台XXL-JOB
- 分布式任务调度平台XXL-JOB
- 【转载】A lightweight distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
- 接入-分布式任务调度平台XXL-JOB
- 分布式任务调度平台XXL-JOB配置笔记
- 分布式任务调度平台XXL-JOB
- 使用xxl-job调度平台时,启动执行器工程报错:unknown code for readObject at 0x3c (<)
- 分布式任务调度平台XXL-JOB
- 分布式任务调度平台XXL-JOB
- 《分布式任务调度平台XXL-JOB》-示例搭建
- 分布式任务调度平台XXL-JOB
- 任务调度框架Quartz(二) 使用job、trigger、schedule调用定时任务
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- 《分布式任务调度平台XXL-JOB》-示例搭建2
- 轻量级分布式任务调度框架XXL-JOB 学习笔记
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- win7平台上使用eclipse(luna)将mapred任务上传到集群上运行
- 任务调度3-------Web中使用Quartz…
- 任务调度平台讨论