Springboot 整合 xxljob 使用定时任务调度(新手入门篇)

古城微笑少年丶 2023-09-28 10:22 299阅读 0赞

前言

很久很久以前写过好几篇关于定时任务的使用系列的文章:

这一篇是最简单的,就是单纯跑跑定时任务,那你看这篇就行,没必要用xxljob(因为xxljob要跑服务端,然后自己服务作为客户端接入):

文章 使用@Scheduled 简单实现定时任务

然后这一篇是开始打开封装的壳子,开始可以自己手动配置地去使用定时任务了:

文章 使用Quartz定时器执行多个定时任务 配置篇

然后再继续打开封装的壳子,可以更加自由地去使用定时任务,也就是动态调度:
文章 Quartz定时任务的动态调度使用,实战详解

今天,带来的xxljob的使用, 可能很多人已经会用(最近挺多应届生问到这个的使用),所以我还是选择写一下整合xxl job 的使用入门篇。

ps:如果你已经掌握了,那你点个赞,点个收藏就可以离开了,就凭我们之间的交情,这个赞和收藏,你点下。

正文

在什么都没开始的时候,我们看看springboot 使用 xxljob,需要有些什么,简图:

df3bb677dd3d4cd8afb12084c2174823.png

admin :理解为 server服务端 ,负责提供xxljob相关功能

demo: 理解为 client客户端,你自己想用xxljob的服务

HTML页面, 可视化操作,任务调度。

20ddef57d50a4ba297c956f33cab51ee.png

demo负责通过代码叙述自己的定时任务要做的东西, admin管不着。

admin管什么,可以管 这些任务怎么执行,怎样执行。怎么管? 在HTML页面上管 (其实也有api方式,该篇不讲)。

看到这里,新手的看客是否觉得好麻烦,又要写server端代码,又要接入,而且还得写前端HTML页面?

啥玩意,不搞了。 (是的,正常要是这样的话我也不搞)

如果说这一切都是开箱即用,这样你觉得可以接受吗?

代码GITEE地址(不是我写的,xuxueli 都全部写好了,我之所以这么引出来,是怕你们只能接受我,接受不了别人) :
https://gitee.com/xuxueli0323/xxl-job

下载代码解压出来:
3be87f161fef4ddcb9cfb26e3faae287.png

IDEA上打开项目:
0be5d6e740d042f4ac1c71e51882290e.png

开始实战应用:

先创建数据库 (sql 是现成的)

53f9492606c946b0a11e1d03484c5cfc.png

执行完:

b5db9bc3ca5643088cb981ba3bb33321.png

一.把admin 服务端跑起来

application.properties文件,注意红色框的几个地方(端口我自己改了个自己喜欢的8961,大家随意就行)

e1ebde566a0c4e8ea0894f794b65da05.png

改完直接运行:
05629f13eda94699a73bc36b132a0086.png

然后去HTML管理界面看下,http://localhost:8961/xxl-job-admin:

默认账号 admin

默认密码 123456

c9855b8e0a444cc3b2f65813ae9acf65.png

PS: 如果你忘记密码了怎么办?

89abcdcefe6b4167a23673d12ad7030a.png

9d137de173c54141a204a7a621020a6f.png

294a10bb5cb546d289c9ae7554769934.png

跑偏了,继续,登录成功可以进到任务调度中心界面:

380201c86303435295085c68013ce110.png

到这,先不用管其他的,我们接下来第二步。

二.接入xxljob,开始使用xxljob实现定时任务

db6245d82cc14f688bdb9af5db3334ba.png

红色框的这几个点,比较重要:

b9c10247cfd64815b0de0d5c4e6dd8b2.png

既然要接如xxl job ,那么 admin 的接入地址,肯定是要对应的:

xxl.job.admin.addresses=http://127.0.0.1:8961/xxl-job-admin


executor 至关重要, 这个就是 任务执行器, 每个job任务都是需要执行器来执行的,就像子弹和枪的关系 。

2a098d61e3644e54a8be17c32a6ef143.png

这个executor ,简单的理解为每个接入的demo服务对应一个就行。

这个可视化界面是随时可以新增、删除、修改的, 但是怎么操作得对应起来才能正常运行。

当然了,直接改数据库表数据也行:

956b9bfc12ec4d55a081006e753e050a.png

PS: 如果我不想某个任务执行了, 那么把相关得执行器干掉就行。

子弹没有对应型号的枪,能打吗?

改完配置,就已经接入成功了其实。

怎么使用?

c0a6bfe84bdc46079e8b0a39b3d6b4d7.png

示例代码:

  1. /**
  2. * 示例
  3. */
  4. @XxlJob("clockInJobHandler")
  5. public void clockInJobHandler() throws Exception {
  6. logger.info("clockInJobHandler 正在执行打卡校验" + new Date());
  7. }

然后把demo 跑起来 ,

控制台的日志可以看到,好多个任务已经都注册到admin去了 :
4e23687b93d34f3c8322f1b803cc6b4c.png

代码都写好了, 那么就是 在HTML页面 操作调度一下就可以。

新增对任务的管理 :

4a693f2ed182493db0b96654bfd193aa.png

f56a48d201474a84b0cf2dcba4ad9314.png

57238211632f409e8b10f1434c595328.png

任务启动了:

144b44b862904c36bc34d541fcf8d352.png

可以看到控制台,定时任务在定时执行:

37d866c0bc91459cae4b5e77badfd40d.png

好了该篇就到这吧, 总结一下springboot 快速整合 xxl-job 需要做的事情:

  1. 下载开源的代码

2.用开源提供的sql创建数据库

3.改下admin的配置文件,运行项目

4.改下自己服务的配置文件,接入xxl -job

5.用注解@XxlJob 写下定时任务实现的代码

6.去HTML管理界面,创建一下 执行器、任务器

7.给我点赞、点收藏,然后评论夸一下我

发表评论

表情:
评论列表 (有 0 条评论,299人围观)

还没有评论,来说两句吧...

相关阅读