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

一、背景

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

  • 某个时间点发送优惠券
  • 发送短信等等。
  • 批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。
  • 固定频率的场景:每隔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. react native 上传图片(后面有空写一个,完整的案例)

    图片上传的思路很正确 https://www.jianshu.com/p/c9f030fa6754 1. 获取图片路径 利用react-native-image-crop-pick 从手机中获得图片的 ...

  2. eclipse中利用Maven逆向工程生成PO类以及mapper(mybatis)

    在pom.xml的project>build里面添加如下代码,让maven环境支持mybatis-generator组件   <pluginManagement>   <plu ...

  3. bzoj 3532

    很好的一道题,对理解最小割有很大帮助 首先,不难发现本题与网络流24题中的某一道很类似,我们可以先跑一次dp求出每个节点的LIS,然后拆点,拆出的两点之间连流量为删除的代价的边,剩下的点之间按dp的转 ...

  4. list与linkedlist(添加、删除元素)

    1)jdk1.8中list遍历过程中可以直接删除元素了(jdk1.7可以通过倒序遍历删除或iterator遍历删除元素) List<Integer> list = new ArrayLis ...

  5. mermaid工具

    mermaid支持:流程图.时序图.甘特-等图表的绘制:可在线编辑,保存代码.图片. mermaid :官网.在线编辑器.操作手册

  6. 快速搭建基于webpack的babylon.js开发手脚架

    原文:https://doc.babylonjs.com/how_to/page2 目录 创建一个项目 安装Babylon.js 设置webpack 安装依赖 配置webpack 插件 创建场景 设置 ...

  7. c# WinForm 多次点击这个按钮会弹出多个窗体, 怎么才能只显示一个窗体。解决方案!

    第一种解决方法 "单例" <mark> 书上有 private void toolStripLabel1_Click(object sender, EventArgs ...

  8. dpkt 简单应用

    import dpktfrom dpkt.utils import mac_to_str,inet_to_strcap=f'D:/test_pacp/6.pcap'with open(cap,'rb' ...

  9. Python数据分析第七周作业-MySQL的安装及应用

    项目 MySQL 博客名称 2003031126-石升福-Python数据分析第七周作业 班级链接 20级数据班(本) 作业链接 第七周作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自 ...

  10. js 全屏显示指定区域

    小猪最近使用vue开发项目的时候,需要实现将指定区域全拼展示的操作. 小猪选择使用js来实现,实现原理:使用requestFullscreen()方法将指定的dom元素在全屏模式下打开. 支持的部分浏 ...