大家好,我是咔咔 不期速成,日拱一卒

一、背景

在平时的业务场景中,经常有一些场景需要使用定时任务,比如:

  • 某个时间点发送优惠券
  • 发送短信等等。
  • 批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。
  • 固定频率的场景:每隔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文件里边输出的内容


总结

到这里对于xxl-job的安装部署并使用就全部聊完了,通过本文你就可以使用xxl-job来执行你的PHP脚本文件了

下期文章我们再聊在实际项目中如何使用xxl了

坚持学习、坚持写作、坚持分享是咔咔从业以来所秉持的信念。愿文章在偌大的互联网上能给你带来一点帮助,我是咔咔,下期见。

小白都能看懂得Xxl-job安装教程的更多相关文章

  1. 搭建分布式事务组件 seata 的Server 端和Client 端详解(小白都能看懂)

    一,server 端的存储模式为:Server 端 存 储 模 式 (store-mode) 支 持 三 种 : file: ( 默 认 ) 单 机 模 式 , 全 局 事 务 会 话 信 息 内 存 ...

  2. 小白都能看懂的Linux系统下安装配置Zabbix

    实验环境: 操作系统:Centos 7.6 服务器ip:192.168.10.100 运行用户:root 网络环境:Internet Zabbix是一个基于web界面的提供分布式系统监控及网络功能的企 ...

  3. 小白都能看明白的VLAN原理解释

    为什么需要VLAN 1. 什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.VLAN ...

  4. Unity 打包发布Android新手教学 (小白都能看懂的教学 ) [转]

    版权声明:本文为Aries原创文章,转载请标明出处.如有不足之处欢迎提出意见或建议,联系QQ531193915 扫码关注微信公众号,获取最新资源 最近在Unity的有些交流群里,发现好多Unity开发 ...

  5. gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程

    什么是插件 Gitbook 插件是扩展 GitBook 功能(电子书和网站)的最佳方式. 只要是 Gitbook 默认没有提供的功能,基于插件机制都可以自行扩展,是插件让 Gitbook 变得更加强大 ...

  6. 小白都能看懂的vue中各种通信传值方式,附带详细代码

    1.路由通信传值 路由通信是通过路由跳转用query把参数带过去,也是vue常用的通信手段. 例子: 创建并在路由注册一个组件Head <template> <div id=&quo ...

  7. 大白话Java多线程,小白都能看的懂的哦

    什么是线程 说到线程我们应该先了解下什么是进程,下面这个图片大家应该都比较熟悉吧. 我们看到的这些单独运行的程序就是一个独立的进程,进程之间是相互独立存在的.我们上面图中的360浏览器.百度云盘等等都 ...

  8. 小白都能看懂的Spring源码揭秘之IOC容器源码分析

    目录 前言 IOC 只是一个 Map 集合 IOC 三大核心接口 IOC 初始化三大步骤 定位 加载 注册 总结 前言 在 Spring 框架中,大家耳熟能详的无非就是 IOC,DI,Spring M ...

  9. 小白都能看懂的 Spring 源码揭秘之依赖注入(DI)源码分析

    目录 前言 依赖注入的入口方法 依赖注入流程分析 AbstractBeanFactory#getBean AbstractBeanFactory#doGetBean AbstractAutowireC ...

  10. log4j漏洞的产生原因和解决方案,小白都能看懂!!!!

    核弹级bug Log4j,相信很多人都有所耳闻了,这两天很多读者都在问我关于这个bug的原理等一些问题,今天咱们就专门写一篇文章,一起聊一聊这个核弹级别的bug的产生原理以及怎么防止 产生原因 其实这 ...

随机推荐

  1. mysql-8.0.28-winx64数据库win10系统安装步骤

    一.官网下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/ ↓↓↓选择如下图版本↓↓↓ 二.解压安装包到本地 三.新建记事本创建my.ini配置文件 四 ...

  2. Spring boot jar包解压后重新压缩命令

    进入解压的目录/demo,运行 jar cvfM0 demo.jar * 压缩后的项目即可运行 参考:https://www.cnblogs.com/liyanbin/p/6088458.html

  3. Cxf框架中@WebService注解的使用

    最近工作中总是不可避免的使用WebService来对接功能,经过自己一番摸索,总结出了一些使用方法,做一下记录: 记录了两个SpringBoot版本使用WebService的一些问题和用法,Sprin ...

  4. 在linux环境下自动执行python脚本

    有时候编辑的py文件,需要进行自动执行时,可以用以下方式进行定时 00 09 * * * /usr/local/bin/python3 /udata/ubi/uenbi_py/trade_all_da ...

  5. JDBC——连接SQL Server环境配置

    JDBC:使用JAVA语言操作关系型数据库的API.是一套标准的接口. 步骤 1.创建工程,导入驱动jar包 2.注册驱动:Class.forName("com.mysql.jdbc.Dri ...

  6. 代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

    977.有序数组的平方 :https://leetcode.cn/problems/squares-of-a-sorted-array/ 心得:周末再写... public class Solutio ...

  7. Gridview控件的RowDataBound事件使用中 无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型

    无法将类型为"System.Web.UI.LiteralControl"的对象强制转换为类型   使用GridView的时候,相信很多朋友都遇到过"无法将类型为" ...

  8. 数字子串的和 str2int

    UVA1673 这道题可以用广义后缀自动机,不过陈锋老师给我们讲了一个巧妙地方法,使得这道题可以用普通的后缀自动机做. 题目大意: 给出NNN个完全由数字组成的字符串.计算将这个NNN的字符串的所有子 ...

  9. HashMap中的Entry接口

    利用Entry接口,快速又方便 import java.util.HashMap; import java.util.Map; public class MapDemo { public static ...

  10. nodejs <a>带参数返回路由标记执行数据库操作

    今天在测试mongo数据库操作维护的时候,测试了一下直接在表内添加操作列来完成数据的删除操作,直接返回数据库ID,页面表格如下: 通过点击删除,即可完成对应条目数据库删除操作. 1.mongo数据操作 ...