SpringBoot整合Xxl-job实现定时任务的全过程

SpringBoot整合Xxl-job实现定时任务的全过程

2023年7月21日发(作者:)

SpringBoot整合Xxl-job实现定时任务的全过程⽬录前⾔⼀、部署调度中⼼1、项⽬下载2、初始化数据3、修改properties配置⽂件⼆、部署SpringBoot项⽬1、引⼊依赖2、创建配置类3、修改配置⽂件4、创建执⾏器5、启动SpringBoot项⽬三、通过调度中⼼进⾏任务调度1、添加执⾏器2、添加任务3、任务调度中⼼发起任务调度四、⼩结总结前⾔ XXL-JOB是⼀个分布式任务调度平台,其核⼼设计⽬标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接⼊多家公司线上产品线,开箱即⽤。如果是单机并且定时任务不多的情况,可以选择Timer注解@Scheduled或者Cron⼯具类等⽅式来实现,但是这有个缺点,那就是定时任务会写死在代码中,⼀旦启动,就不能暂停或者修改。如果修改的话,整个还项⽬要重新编译,这属实⾮常的⿇烦。 本篇⽂章将会介绍如何通过xxl-job来实现任务的调度⼀、部署调度中⼼1、项⽬下载下⾯是调度中⼼代码的gitee地址,可以colon到本地/xuxueli0323/xxl-job2、初始化数据在下载好的项⽬中的doc/db⽬录下有⼀个tables_xxl_⽂件,先放到⾃⼰的数据库中执⾏,其实就是初始化好调度中⼼需要的表结构和数据3、修改properties配置⽂件⼆、部署SpringBoot项⽬1、引⼊依赖 i xxl-job-core 2.2.02、创建配置类@Configurationpublic class XxlJobConfig { private Logger logger = ger(); @Value("${ses}") private String adminAddresses; @Value("${e}") private String appName; @Value("${}") private String ip; @Value("${}") private int port; @Value("${Token}") private String accessToken; @Value("${h}") private String logPath; @Value("${entiondays}") private int logRetentionDays; @Bean public XxlJobSpringExecutor xxlJobExecutor() { (">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); inAddresses(adminAddresses); name(appName); (ip); t(port); essToken(accessToken); Path(logPath); RetentionDays(logRetentionDays); return xxlJobSpringExecutor; }}3、修改配置⽂件xxl: job: admin: addresses: 127.0.0.1:8080/xxl-job-admin #部署的调度中⼼的url executor: appname: xxl-job-volunteer-executor #执⾏器的名字 ip: port: 9999 #调度中⼼调⽤执⾏器时使⽤的端⼝ logpath: /data/apploggs/xxl-job/jobhandler #⽇志路径 logretentiondays: 30 #⽇志保留天数 accessToken:4、创建执⾏器@Componentpublic class XxlJobSample { // myDemoJob是任务的名字,也是Spring中bean的名字 @XxlJob("myDemoJob") public ReturnT myDemoJob(String value) { n("myDemoJob:定时任务触发:" + value); return S; }

}5、启动SpringBoot项⽬启动成功后会看到下⾯两⾏⽇志信息, 可以看到成功连接到了调度中⼼然后注册了将要被调度任务 >>>>>>>>>>> xxl-job register jobhandler success, name:myDemoJob, jobHandler:JobHandler@1f94dd63[class Sample#myDemoJob]

>>>>>>>>>>> xxl-job remoting server start success, nettype = class erver, port = 9999三、通过调度中⼼进⾏任务调度1、添加执⾏器输⼊配置⽂件中配置的appName,名称可以随意2、添加任务新增调度任务查看调度任务3、任务调度中⼼发起任务调度在SpringBoot项⽬中可以看到控制台输出如下信息:2022-01-16 11:54:05.039 INFO 7836 --- [Pool-1148366645] Executor : >>>>>>>>>>> xxl-job regist JobThread success, jobId:7, handler:JobHandler@1f94dd63[class emyDemoJob:定时任务触发:testParam2022-01-16 11:55:38.059 INFO 7836 --- [ Thread-22] ead : >>>>>>>>>>> xxl-job JobThread stoped, hashCode:Thread[Thread-22,10,main]四、⼩结⾄此,SpringBoot整合Xxl-job就完成了,刚才的⽰例代码其实对于原来的项⽬还是有⼀定的侵⼊性的,上⾯仅仅演⽰了BEAN运⾏模式,说⽩了就是调⽤加了@XxlJob的⽅法。其实在创建任务的时候还可以尝试使⽤GLUE(Java)这⼀运⾏模式,这种⽅式其实就是执⾏你输⼊的Java代码,这种⽅式可以不⽤在原有的项⽬之上新增依赖或者配置,对于定时任务,只需要编写⼀个接⼝⽤于触发,然后GLUE(Java)任务定时的去请求暴露的接⼝即可下⾯是代码⽚段:public class DemoGlueJobHandler extends IJobHandler { @Override public void execute() throws Exception { ("定时任务执⾏了⼀次"); ("localhost:8088/oos/test") .header(_AGENT, "xxl-job")//头信息,多个头信息多次调⽤此⽅法即可 .timeout(20000)//超时,毫秒 .execute(); }}上⾯的代码其实会在执⾏器中进⾏执⾏,可以实现在Test⾥⾯跑⼀下,没有问题后再贴过来(还要注意复制import等信息)以上就是今天的全部内容了,想了解更多,可以阅读官⽅⽂档总结到此这篇关于SpringBoot整合Xxl-job实现定时任务的⽂章就介绍到这了,更多相关SpringBoot整合Xxl-job实现定时任务内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689930430a295233.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信