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

一、背景

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

  • 某个时间点发送优惠券
  • 发送短信等等。
  • 批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。
  • 固定频率的场景:每隔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. 最长公共子序列(LCS)tzoj:5752

    http://www.tzcoder.cn/acmhome/problemdetail.do?method=showdetail&id=5752 题意:求两个串的最长公共子序列(顺序相同即为子 ...

  2. 7种实现web实时消息推送的方案

    做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能. 不过他还没想好用什么方式做,这里我帮他整理了一下几种方案,并简单做了实现. 什么是消息推送(pus ...

  3. python+scrcpy实现将安卓设备录屏并保存到pc本地

    一)scrcpy下载及安装 参考链接:https://zhuanlan.zhihu.com/p/80264357 二)python+scrcpy实现将安卓设备录屏并保存到pc本地 示例代码: impo ...

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

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

  5. edge 浏览器部分功能

    模拟打印情况的调试

  6. window 版本下面建立linux命令行终端的方法

    这个主要是解决dos系统命令行与linux命令行不匹配的问题. 因此microsoft shop 中开发了很多免费的app可供傻瓜式的安装使用.但是出现了不能下载的问题. 链接如下:https://w ...

  7. Vue修改

    今天做的是一个Vue的修改操作: Vue主要是用来做视图来显示数据的,理解起来的话可能比较困难,学了好几天了,才刚摸到一点头绪,还是需要努力

  8. P3512 [POI2010]PIL-Pilots 单调队列的应用

    题目描述 给定n,k和一个长度为n的序列,求最长的最大值最小值相差不超过k的序列 输入格式 第一行两个有空格隔开的整数k(0<=k<=2000,000,000),n(1<=n< ...

  9. windows 获取USB,发现安卓设备,转载自www.jb51.net/article/164456.htm

    转载 作者:jgw2008 import win32com.client def CheckDev(): wmi = win32com.client.GetObject ("winmgmts ...

  10. android 下载安装包更新app

    1下载 public void download(String url) { Utils.Loge("download",url); Uri uri = Uri.parse(url ...