之前,我们已经学习了xxl-job的入门:https://www.cnblogs.com/luyj00436/p/18780550 。这里的任务执行,调用的是demo。
那么我们自己的项目,如果使用xxl-job?自己的项目,相当于执行器,只要把自己的项目,仿造xxl-job-executor-sample-springboot
,即可。
步骤
-
新建Springboot子项目 ,命名为
quartzdemo
,并添加项目依赖,主启动类,配置端口号(因为xxl-job任务调度中心端口号是8080,所以我配置了其他端口号2026)。 -
添加项目依赖
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job</artifactId><version>2.4.0</version> </dependency>
-
设置配置文件 。配置文件的设置,可以参考
xxl-job-executor-sample-springboot
的配置文件xxl-job-executor.properties
。这里以yaml文件格式为例。# xxljob配置 xxl:job:admin:address: http://127.0.0.1:8080/xxl-job-admin # 调度中心部署地址[选填]accessToken: default_token # 执行器通讯Tokenexecutor:address: # 执行器地址[选填]:默认当前IPappname: xxl-job-executor-sample # 执行器AppNameip: 127.0.0.1 # 执行器IPport: 9998 # 执行器端口号 [选填]: 默认9999,单机部署多个执行器时,注意配置不同执行器端口号logpath: /data/applogs/xxl-job/jobhandler # 执行器日志文件存储磁盘路径 [选填]:默认值 user.dir + "/logs/xxl-job/"logretentiondays: 30 # 执行日志保留天数 [选填]:默认值 30
-
添加配置对象。
@Configuration public class XxlJobConfig {@Value("${xxl.job.admin.address}")private String adminAddress;@Value("${xxl.job.executor.appname}")private String appname; // @Value("${xxl.job.executor.adress}") // private String address;@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;@Value("${xxl.job.executor.logretentiondays}")private int logretentiondays;@Beanpublic XxlJobSpringExecutor xxlJobSpringExecutor(){XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddress);xxlJobSpringExecutor.setAppname(appname); // xxlJobSpringExecutor.setAddress(address);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logpath);xxlJobSpringExecutor.setLogRetentionDays(logretentiondays);return xxlJobSpringExecutor;} }
-
设置要执行的任务。
@Component public class SimpleXxlJob {@XxlJob("demoJobHandler")public void demoJobHandler() throws Exception {System.out.println("[xxlJob][时间]:" + LocalDateTime.now());} }
-
运行xxl-job-admin 和自己新建的子项目。打开任务调度中心的执行管理器,可以发现任务节点已注册。
-
配置要执行测试的任务,并启动。可以发现我们新建的子项目(执行器对应项目),已经按规律执行了测试方法。