当前位置: 首页 > news >正文

定时任务使用总结

定时任务表达式生成工具网站:https://cron.qqe2.com/

定时任务选型:

xxl-job 官方文档:https://www.xuxueli.com/xxl-job/

安装定时任务调度中心 xxl-job-admin

第一步、先导入xxl-job的数据库:

地址:https://gitee.com/xuxueli0323/xxl-job/tree/master/doc/db

修改数据库的用户名和密码并同时开启外部访问权限

docker安装xxl-job-admin 步骤:

拉取镜像

docker pull xuxueli/xxl-job-admin:2.3.1

开放端口

firewall-cmd --zone=public --add-port=8090/tcp --permanent

运行镜像

docker run -d \

--name xxl-job-admin \

-p 8090:8080 \

-e JVM_XMS=128m \

-e JVM_XMX=512m \

xuxueli/xxl-job-admin:2.3.1

创建配置挂载目录

mkdir -p /docker/xxl-job/config/application.properties

mkdir -p /docker/xxl-job/logs

复制配置

docker cp xxl-job-admin:/data/applogs/xxl-job /docker/xxl-job/logs

删除运行中的镜像

docker rm -f xxl-job-admin

完整的运行镜像

docker run -d \

--name xxl-job-admin \

-p 8090:8080 \

-e JVM_XMS=128m \

-e JVM_XMX=512m \

-v /docker/xxl-job/config/application.properties:/application.properties \

-v /docker/xxl-job/logs:/data/applogs \

xuxueli/xxl-job-admin:2.3.1

修改外部映射的配置文件application.properties中的数据源地址配置

访问:http://192.168.56.10:8090/xxl-job-admin

默认账号密码:admin、123456

spring boot项目整合 xxl-job

首先引入依赖:

<!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core -->
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.3.1</version>
</dependency>

安装好xxl-job-admin 定时任务调度中心后,在项目中配置 xxl-job 参数配置 xxl-job 参数,用于创建执行器和连接调度中心,参考如下:

@Getter
@Setter
public class XxlJobAdminProperties {private String address;
}
@Getter
@Setter
public class XxlJobExecutorProperties {/*** 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册*/private String appname;/*** 服务注册地址,优先使用该配置作为注册地址 为空时使用内嵌服务 ”IP:PORT“ 作为注册地址 从而更灵活的支持容器类型执行器动态IP和动态映射端口问题*/private String address;/*** 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP ,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和* "调度中心请求并触发任务"*/private String ip;/*** 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9099,单机部署多个执行器时,注意要配置不同执行器端口;*/private Integer port = 9099;/*** 执行器通讯TOKEN [必填]:从配置文件中取不到值时使用默认值;*/private String accessToken = "default_token";/*** 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;*/private String logPath = "logs/applogs/xxl-job/jobhandler";/*** 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;*/private Integer logRetentionDays = 30;}
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "xxl.job")
public class XxlJobProperties {@NestedConfigurationPropertyprivate XxlJobAdminProperties admin;@NestedConfigurationPropertyprivate XxlJobExecutorProperties executor;}
xxl:job:admin:address: http://192.168.56.10:8090/xxl-job-adminexecutor:address:appname: xxl-job-executor-orderip:port: 9999log-path: /data/applogs/xxl-job/jobhandlerlog-retention-days: 30access-token: default_token

特别提醒:在配置文件中配置 xxl-job 参数时,不要配置executor执行器的address 和 ip 这两个属性,自己配置容易出问题,使用默认的策略就好。

配置自定义执行器:

@Slf4j
@Configuration
public class XxlJobConfig {@Beanpublic XxlJobSpringExecutor xxlJobSpringExecutor(XxlJobProperties properties) {XxlJobSpringExecutor executor = new XxlJobSpringExecutor();executor.setAdminAddresses(properties.getAdmin().getAddress());executor.setAddress(properties.getExecutor().getAddress());executor.setAppname(properties.getExecutor().getAppname());executor.setIp(properties.getExecutor().getIp());executor.setPort(properties.getExecutor().getPort());executor.setAccessToken(properties.getExecutor().getAccessToken());executor.setLogPath(properties.getExecutor().getLogPath());executor.setLogRetentionDays(properties.getExecutor().getLogRetentionDays());return executor;}@XxlJob("xxlJobHandler")public void xxlJobHandler() {String jobParam = XxlJobHelper.getJobParam();log.info("【xxlJobHandler】 定时任务开始执行,参数为:{}", jobParam);}}

上面的配置类 XxlJobConfig 中注入的Bean就是自定义定时任务执行器,执行器下方的方法,如下:

    @XxlJob("xxlJobHandler")public void xxlJobHandler() {String jobParam = XxlJobHelper.getJobParam();log.info("【xxlJobHandler】 定时任务开始执行,参数为:{}", jobParam);}

这个是一个调度任务,@XxlJob("xxlJobHandler")  注解就可以声明一个调度任务,其中的值 xxlJobHandler 就是调度任务的名称

以上步骤做完先不要启动项目,还需要在xxl-job-admin 调度中心配置执行器和调度任务

准备执行 xxlJobHandler 调度任务

来到 xxl-job-admin 调度中心,首先创建一个执行器,参考如下:

其中 AppName 为执行器名称,要和我们之前在配置文件中配置的执行器名称一致;名称 可以随便写,见名知意即可,注册方式 选择自动注册,选择自动注册后机器地址不用填。

添加完执行器后,再添加调度任务,操作如下:

最后,执行定时任务,效果如下:

需要注意的是,程序中调度任务在取调度中心的定时任务参数时,需要通过 XxlJobHelper 对象获取,例如:String jobParam = XxlJobHelper.getJobParam();   不能直接使用方法参数接受。

相关文章:

定时任务使用总结

定时任务表达式生成工具网站&#xff1a;https://cron.qqe2.com/定时任务选型&#xff1a;xxl-job 官方文档&#xff1a;https://www.xuxueli.com/xxl-job/安装定时任务调度中心 xxl-job-admin第一步、先导入xxl-job的数据库&#xff1a;地址&#xff1a;https://gitee.com/xux…...

Jira和Confluence Server版终止支持倒计时365天,企业应对策略汇总

本文对Atlassian最新的Server版政策进行了解读&#xff0c;并给出应对方案&#xff1b;同时我们也将国内热门的替代工具与jira进行了比较细致的对比&#xff0c;以及介绍替换的优惠政策等。今天是2023年2月15日&#xff0c;距离 Atlassian 旗下 Jira、Confluence 等系列产品中国…...

GEE学习笔记九十一:栅格影像叠置分析

最近发现好多人都在问一个问题&#xff0c;两张影像如何取其相交区域&#xff1f;其实这个问题简单来讲就是多张栅格影像进行叠加分析。在GEE中栅格影像不像矢量数据那样有直接的函数来做数据分析&#xff0c;需要我们自己手动写一些代码来实现这些操作。要实现这个功能有很多方…...

linux系统编程入门

一、搭建环境 1、安装 Linux 系统&#xff08;虚拟机安装、云服务器&#xff09; https://releases.ubuntu.com/bionic/ 2、安装 XSHELL、XFTP https://www.netsarang.com/zh/free-for-home-school/ 3、安装 visual studio code https://code.visualstudio.com/ 4、Linu…...

JS代码安全防护常见的方式

文章目录1. 常量的混淆1.1 十六进制字符串1.2 unicode字符串1.3 字符串的ASCII码混淆1.4 字符串常量加密1.5 数值常量加密2. 增加逆向分析难度2.1 数组混淆2.2 数组乱序2.3 花指令2.4 jsfuck3. 代码执行流程的防护3.1 流程平坦化3.2 逗号表达式4. 其他代码防护方案4.1 eval加密…...

PHP(13)HTTP协议

PHP&#xff08;13&#xff09;HTTP协议一、HTTP请求1. 请求行2. 请求头3. 请求体二、HTTP响应1. 响应行2. 响应头三、设置HTTP响应四、模拟HTTP请求一、HTTP请求 1. 请求行 请求行独占一行。形式&#xff1a;请求方式 资源路径 协议版本号 GET /index.php HTTP/1.1 2. 请求…...

基于支持向量机 (SVM) 用php实现预测气温

Windows 10自带的天气应用有一个基于历史数据预测气温的功能&#xff0c;有一定的参考价值。那么如何去实现这一功能呢&#xff1f;本文采用php进行实现。 使用机器学习方法实现预测当日气温的算法需要涵盖许多的步骤&#xff0c;以下是一种基于支持向量机 (SVM) 的算法的简化…...

MySQL(五)

通过索引进行优化 索引基本知识 索引的优点 1、大大减少了服务器需要扫描的数据量2、帮助服务器避免排序和临时表3、将随机io变成顺序io 索引的用处 1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择&#xff0c;mysql通常会使用找到…...

Linux常用命令2

目录1.查找find&#xff08;1&#xff09;普通用法&#xff08;2&#xff09;组合用法2.xargs命令3.管道符4.查看文件内容(1)查看两个文件的差别&#xff1a;diff file1 fille2(2)正序查看文件内容cat(3)倒序查看文件内容tac(4)分页查看文件内容more(5)分页查看文件内容less(6)…...

『C/C++养成计划』Visual Studio Code编辑器配置(外观通用型扩展Minmal)

Visual Studio Code编辑器配置(外观&通用型扩展&Minmal)! 文章目录 一. vscode配置外观|通用型扩展1.1. 色彩主题配置扩展(GitHub Theme)1.2. 图标主题扩展(Material Icon Theme)1.3. 代码高亮扩展(better-comments)1.4. 错误警告扩展(error lens)1.5. 执行代码扩展(c…...

设计模式(适配器模式)

设计模式&#xff08;适配器模式&#xff09; 第二章 设计模式之适配器模式&#xff08;Adapter&#xff09; 一、Adapter模式介绍 适配器模式位于实际情况和需求之间&#xff0c;填补两者之间的差距。 二、示例程序1&#xff08;使用继承的适配器&#xff09; 1.示例程序示…...

在基于全志D1s的芒果派麻雀上运行国产开源rt-smart系统

想必RT-Thread系统大家不陌生了&#xff0c;RT-Thread Smart&#xff08;简称 rt-smart&#xff09;是基于 RT-Thread 操作系统衍生的新分支&#xff0c;面向带 MMU&#xff0c;中高端应用的芯片&#xff0c;例如 ARM Cortex-A 系列芯片&#xff0c;MIPS 芯片&#xff0c;带 MM…...

【代码随想录训练营】【Day15】第六章|二叉树|层序遍历|226.翻转二叉树|101.对称二叉树

层序遍历 题目详细&#xff1a;LeetCode.102 层序遍历与上一节讲的三种遍历方式有所不同&#xff0c;层序遍历是指按从上到下&#xff0c;从左到右的顺序&#xff0c;逐层地遍历二叉树的节点。 从其节点的遍历顺序上观察&#xff0c;我们可以发现其跟广度优先遍历&#xff0…...

基于圆展开自适应三边测量算法的室内定位

基于圆展开自适应三边测量算法的室内定位 具有无线通信功能的移动设备的日益普及刺激了室内定位服务的增长。室内定位用于实时定位设备位置&#xff0c;方便访问。然而&#xff0c;由于大量障碍物&#xff0c;与室外定位相比&#xff0c;室内定位具有挑战性。全球定位系统非常适…...

使用中断子系统实现对LED灯的控制

中断顶半部&#xff1a;不允许耗时操作 代码流程&#xff1a; 1、基于字符设备驱动的注册&#xff08;手动/自动&#xff09; 2、基于设备树文件的自定义完成(myled, myirq) 2、基于GPIO子系统实现led的点亮&#xff08;流水/测试文件控制&#xff09; 3、中断子系统操作流程 …...

《爆肝整理》保姆级系列教程python接口自动化(十五)--参数关联接口(详解)

简介 我们用自动化新建任务之后&#xff0c;要想接着对这个新建任务操作&#xff0c;那就需要用参数关联了&#xff0c;新建任务之后会有一个任务的Jenkins-Crumb&#xff0c;获取到这个Jenkins-Crumb&#xff0c;就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。 …...

【JDK8】MyBatis源码导入Idea

1.背景 为了更好的将MyBatis的开发设计思想带到日常开发工作&#xff0c;将MyBatis源码导入到本地开发工具中(idea)。我自己在导入的时候碰到几个问题&#xff0c;耽误了自己一点时间&#xff0c;这里我把它们记下来&#xff0c;后边的小伙伴可不要踩我的坑。 Java版本&#x…...

三层交换机DHCP中继

关于中继&#xff0c;我们需要有一个对比。正常情况下我们是不是需要配置单臂路由然后开启DHCP地址池&#xff0c;然就设置网段网关以及DNS。这样的话考验 的其实是命令功底。但是为了方便&#xff0c;我们 可以添加服务器&#xff0c;将这个服务给到服务器去配置&#xff0c;这…...

C++之RALL机制

RALL是Resource acquisition is initialization的缩写&#xff0c;意思是“资源获取即初始化”&#xff0c;其核心思想是利用C对象生命周期的概念来控制程序的资源。它的技术原理很简单&#xff0c;如果希望对某个重要资源进行跟踪&#xff0c;那么创建一个对象&#xff0c;并将…...

回溯算法章末总结

组合问题的特点 &#xff08;1&#xff09;abba 选中a之后&#xff0c;就不再选了 &#xff08;2&#xff09;找出所有的组合 &#xff08;长度可以不相等&#xff09; 组合问题模板 做回溯题步骤 &#xff08;0&#xff09;判断问题类型 &#xff08;1&#xff09;树状图 …...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...