一、背景
在平时的业务场景中,经常有一些场景需要使用定时任务,比如:
-
某个时间点发送优惠券
-
发送短信等等。
-
批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。
-
固定频率的场景:每隔5分钟需要执行一次。
所以定时任务在平时开发中并不少见,而且对于现在快速消费的时代,每天都需要发送各种推送,消息都需要依赖定时任务去完成,应用非常广泛。
xxl-job主要分为调度中心和执行器,简单来讲,调度中心就是后台管理,执行器就是执行定时任务的,就这么理解就行,没那么高大上。
二、所需工具
使用xxl-job需要先配置好maven、java环境,接下来先把所需要的工具都下载到本地
下载xxl-job源码
https://github.com/xuxueli/xxl-job.git
咔咔使用的编辑器是Intellij IDEA
,可以下载社区版
下载maven
在这里插入图片描述
在这里插入图片描述
下载java并安装,下载地址
https://www.oracle.com/java/technologies/downloads/#java8-windows
在这里插入图片描述
三、配置maven
咔咔将下载的maven放到了D盘
修改\apache-maven-3.9.0\conf\settings.xml文件
把本来的配置修改为圈的内容
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
复制C:\Users\Administrator\.m2
到maven中
配置环境变量
在这里插入图片描述
四、配置java环境
这里没有修改java的安装目录,直接默认安装位置到C:\Program Files\Java
环境变量都需要配置JAVA_HOME、CLASSPATH、path
-
JAVA_HOME:C:\Program Files\Java\jdk-18.0.2
-
CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
-
path:%JAVA_HOME%\bin、%JAVA_HOME%\jre\bin
五、验证配置是否成功
执行以下命令看是否配置成功
java -verison
javac -version
mvn -version
在这里插入图片描述
六、初始化MySQL表
# 调度数据库初始化SQL脚本位置:/xxl-job/doc/db/tables_xxl_job.sql
cd xxl-job/doc/db
# 登录mysql
mysql -uroot -p
# 执行mysql初始化脚本
source ./tables_xxl_job.sql 或者 source 绝对路径/tables_xxl_job.sql
# 切换数据库
use xxl_job;
# 查看表是否创建完毕
show tables;
看到xxl_job就表示数据库已经导进去了
七、部署调度中心
打开编辑器后需要先把maven的目录修改为咱们自己下载的
在这里插入图片描述
配置完成后,右击根目录的pom.xml文件,点击maven的Reload project
在这里插入图片描述
修改配置文件 \xxl-job-admin\src\main\resources\application.properties
数据库配置
在这里插入图片描述
在根目录执行打包命令
maven package
执行完成后你就会在target中看到一个jar包
在这里插入图片描述
将包xxl-job-admin-2.3.1.jar
通过scp命令传输到服务器中,这里咔咔使用的是虚拟机
执行命令,启动调度中心
java -jar xxl-job-admin-2.3.1.jar
在这里插入图片描述
使用你得域名加默认端口号直接访问http://192.168.17.128:8080/xxl-job-admin/jobinfo
,就会看到如下界面
八、部署执行器
到官方提供的默认执行器目录下执行命令mvn package
在这里插入图片描述
同样会打出一个执行器的包
把执行器的包同样通过scp
命令传输到服务器上,使用命令java -jar 包名
进行执行
执行器启动成功后在调度中心的执行器管理里边就可以看到机器地址,就代表已经注册器启动成功了
在这里插入图片描述
九、执行PHP脚本
先新增一个任务
在这里插入图片描述
编辑脚本内容
在这里插入图片描述
在服务器的/usr/local/nginx/html/kaka
目录下存在一个php文件,点击保存
在这里插入图片描述
在任务管理里边点击执行一次
在日志里边就可以看到我们PHP文件里边输出的内容