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

XXL-JOB定时任务框架(Oracle定制版)

特点

xxl-job是一个轻量级、易扩展的分布式任务调度平台,能够快速开发和简单学习。开放源代码并被多家公司线上产品使用,开箱即用。尽管其确实非常好用,但我在工作中使用的是Oracle数据库,因为xxl-job是针对MySQL设计的,所以使用起来需要进行一些魔改。为了方便后人使用,我已经创建了许多SQL和自增序列,并将其整合到了xxl-job-2.3.0版本中,环境已经在线上正常使用了,所以可以放心使用。此外,我还将钉钉群报警机器人集成在了框架中,一旦有任何错误报警就会直接锁定日志URL,方便快速查看和处理响应!

xxl-job-2.3.0版本

gitee地址:xxl-job-oracle

项目介绍:SQL文件在sql-doc中,如果不使用钉钉报警机制,请删掉DDTalkUtil工具类及其引用。如果使用,则需要申请钉钉报警机器人相关token,相关教程请移步官方地址:自定义机器人接入

自定义机器人接入

申请完成后,请修改相关DDTalkUtil中的***标注,我在这里还提供了一张表来标识测试环境和生产环境机器人的不同,也有一个字段表示是否需要提醒。如果您不需要此功能,可以直接删除。改掉具体如下:

public class DDTalkUtil {private static Logger logger = LoggerFactory.getLogger(DDTalkUtil.class);private static RestTemplate restTemplate = new RestTemplate();public static void toTalk(String jobtitle,String text,long jobid){try {CrmInterfaceUrlVO crmInterfaceUrlVO = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().getEnv("***");logger.info("获取对象:"+crmInterfaceUrlVO.toString());//不提醒if ("N".equals(crmInterfaceUrlVO.getUseYn())) {return;}String finalUrl = "https://oapi.dingtalk.com/robot/send?access_token=***";JsonObject json = new JsonObject();json.addProperty("msgtype","link");HttpHeaders headers = new HttpHeaders();headers.add("Content-Type", "application/json;charset=UTF-8");JsonObject link = new JsonObject();link.addProperty("text",text);link.addProperty("title",crmInterfaceUrlVO.getName()+jobtitle);link.addProperty("messageUrl",crmInterfaceUrlVO.getUrl()+jobid);json.add("link",link);HttpEntity<String> formEntity = new HttpEntity<String>(json.toString(), headers);logger.info(restTemplate.exchange(finalUrl, HttpMethod.POST, formEntity, String.class, (Object) null).getBody());}catch (Exception e){logger.error("钉钉报警错误:{}",e.getMessage());}}
}

实际上,xxl-job功能非常强大,您还可以根据您的业务场景自定义修改DDTalkUtil工具类来满足需求。在页面中点击页签即可跳转到xxl-job的日志记录网页,非常方便和快捷。最终效果如下:

image

image

Oracle语句

本博主已经将相关SQL修改完毕,自行在Oracle库中复制粘贴即可。

  1. 执行sql-doc文件中的table.sql脚本,用户默认密码是admin/123456
  2. 相关xxl-job的教程,移步官网:XXL-JOB,本博主就不多解释了
  3. 请修改application.properties文件中的Oracle数据库连接
spring.datasource.url=jdbc:oracle:thin:@ip:port:**
spring.datasource.username=**
spring.datasource.password=**
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

结语

虽然现在有其他支持Oracle数据库连接的定时任务框架,但我在使用该项目时并未发现其他好的定时任务框架,所以只能进行大量改动。毕竟,xxl-job框架一直在不断更新完善,社区也十分丰富,因此它被众多公司使用。 

相关文章:

XXL-JOB定时任务框架(Oracle定制版)

特点 xxl-job是一个轻量级、易扩展的分布式任务调度平台&#xff0c;能够快速开发和简单学习。开放源代码并被多家公司线上产品使用&#xff0c;开箱即用。尽管其确实非常好用&#xff0c;但我在工作中使用的是Oracle数据库&#xff0c;因为xxl-job是针对MySQL设计的&#xff…...

SpringBoot + ajax 实现分页和增删查改

0目录 1.SpringBoot 2.SpringBoot分页&#xff1b;增删改查 1.SpringBoot分页 创建数据库和表 创建SpringBoot工程&#xff0c;引入springboot下的分页依赖 配置application.yml 实体类 Mapper接口 Mapper.xml Service接口 Service实现类 控制层 测试 加…...

ProxyGenerator-代理类生成器

ProxyGenerator是JDK-sun包下提供的用于生成动态代理类信息的类&#xff0c;其唯一向外透出的是其静态方法-generateProxyClass(…)。 public class ProxyGenerator { ... }学习本篇文章&#xff0c;就是想学习ProxyGenerator如何生成代理类信息的过程。 一、唯一入口-公开静…...

ARM 内存屏障指令

ARM 内存屏障指令 1. dmb (Data Memory Barrier) 数据内存栅栏2. dsb (Data Synchronization Barrier) 数据同步栅栏3. isb (Instruction Synchronization Barrier) 指令同步栅栏4. ARM 内存屏障指令如何选择使用&#xff1f;5. 使用示例5.1. DMB指令示例&#xff1a;5.2. DSB指…...

了解Linux 的 mmap --- 笔记

学习这篇博客&#xff0c;进行了一些归纳Linux下mmap_linux mmap_一个山里的少年的博客-CSDN博客https://blog.csdn.net/qq_56999918/article/details/127070280 >>读取文件 读取文件方法&#xff1a;由操作系统提供的两个方法&#xff0c;read和write来读写文件。 由…...

docker删除容器(步骤详解)

要在Docker中删除容器&#xff0c;需要使用命令docker rm。 下面是详细步骤&#xff1a; 1. 首先&#xff0c;使用docker ps命令查看当前正在运行的容器。这个命令会列出所有正在运行的容器的ID、名称、状态等信息。 如果没有正在运行的容器可以通过docker ps -a 查看当前所…...

boost beast http server 测试

boost beast http client boost http server boost beast 是一个非常好用的库&#xff0c;带上boost的协程&#xff0c;好很多东西是比较好用的&#xff0c;以下程序使用四个线程开启协程处理进入http协议处理。协议支持http get 和 http post #include <boost/beast/cor…...

Android 10.0 系统开启禁用adb push和adb pull传输文件功能

1.使用场景 在进行10.0的系统开发中,在一些产品中由于一些开发的功能比较重要,防止技术点外泄在出货产品中,禁用 adb pull 和adb push等命令 来获取系统system下的jar 和apk 等文件,所以需要禁用这些命令 2.系统开启禁用adb push和adb pull传输文件功能的分析 看了下系统…...

浙大数据结构第七周之07-图4 哈利·波特的考试

基础知识&#xff1a;&#xff08;最短路的前提都是在图中两条边之间的权值非定值&#xff09; &#xff08;一&#xff09;Dijkstra方法 算法实现&#xff1a; …...

vue2-vue项目中你是如何解决跨域的?

1、跨域是什么&#xff1f; 跨域本质是浏览器基于同源策略的一种安全手段。 同源策略&#xff08;sameoriginpolicy&#xff09;&#xff0c;是一种约定&#xff0c;它是浏览器最核心也是最基本的安全功能。 所谓同源&#xff08;即指在同一个域&#xff09;具有以下三个相同点…...

【Paper Reading】DETR:End-to-End Object Detection with Transformers

背景 Transformer已经在NLP领域大展拳脚&#xff0c;逐步替代了LSTM/GRU等相关的Recurrent Neural Networks&#xff0c;相比于传统的RNN&#xff0c;Transformer主要具有以下几点优势 可解决长时序依赖问题&#xff0c;因为Transformer在计算attention的时候是在全局维度进行…...

【rust/入门】windows安装rust gnu环境(折腾)

说在前面 首先说明&#xff0c;我是rust入门选手&#xff0c;之前都是在wsl写rust&#xff0c;突然想在windows下装下rust。windows版本&#xff1a;windows11 22H2原文换源 心路历程 看到教程我陷入了沉默&#xff0c;(官方推荐) 打开Microsoft C Build Tools我开始不解&…...

java面试---字符串相关内容

字符串 1. 什么是Java中的字符串池&#xff08;String Pool&#xff09;&#xff1f;2. String、StringBuilder和StringBuffer之间的区别是什么&#xff1f;3. 如何比较两个字符串的内容是否相等&#xff1f;4、equals和的区别5. String类有哪些常用的方法&#xff1f; 1. 什么…...

MYSQL进阶-事务的基础知识

1.什么是数据库事务&#xff1f; 就是把好几个sql语句打包成一个整体执行&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff01;&#xff01;&#xff01; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执 行的结果必…...

【C++】C++面向对象,泛型编程总结篇(封装,继承,多态,模板)|(秋招篇)

文章目录 前言如何理解面向对象&#xff1f;如何理解泛型编程&#xff1f;C面向对象的三大特性是什么构造函数有哪几种&#xff1f;讲一下移动构造函数当我们定义一个类 系统会自动帮我们生成哪些函数&#xff1f;标题讲一下类中三类成员&#xff08;公有私有保护&#xff09;三…...

【Github】作为程序员不得不知道的几款Github加速神器

文章目录 背景推荐1&#xff1a;FastGithub推荐2&#xff1a;dev-sidecar推荐3&#xff1a;Watt Toolkit推荐4&#xff1a;篡改猴插件用户脚本1&#xff09;下载安装-->篡改猴 Tampermonkey 插件2&#xff09;下载安装-->Github 增强 - 高速下载 用户脚本 推荐5&#xff…...

react18之08自定义hook (简单的axios-get、修改浏览器title、localStorage、获取滚动条位置、img转换为base64)

目录 react18之自定义hook ()01&#xff1a;自定义一个 简单的axios hook 发起get请求useHttp.jsx使用useHttp hook效果 02&#xff1a;自定义一个 修改浏览器title hook03&#xff1a;自定义一个 localStorage(获取、存储、移除) hookuseLocalStorage.jsx使用hook效果 04&…...

对CommonJS、AMD、CMD、ES Module的理解

CommonJS 常用于&#xff1a;服务器端&#xff0c;node&#xff0c;webpack 特点&#xff1a;同步/运行时加载&#xff0c;磁盘读取速度快 语法&#xff1a; // 1. 导出&#xff1a;通过module.exports或exports来暴露模块 module.exports { attr1, attr2 } ex…...

JVM之类加载与字节码(二)

3. 编译期处理 什么是语法糖 所谓的 语法糖 &#xff0c;其实就是指 java 编译器把 *.java 源码编译为 *.class 字节码的过程中&#xff0c;自动生成 和转换的一些代码&#xff0c;主要是为了减轻程序员的负担&#xff0c;算是 java 编译器给我们的一个额外福利&#xff08;给…...

安装linux操作系统

安装虚拟机的步骤&#xff1a; 安装linux系统 之后开启虚拟机 之后重启&#xff0c;打开虚拟机&#xff0c;登录root账号...

Janus-Pro-7B开发环境搭建:Ubuntu20.04系统配置全攻略

Janus-Pro-7B开发环境搭建&#xff1a;Ubuntu20.04系统配置全攻略 从零开始&#xff0c;手把手带你搭建Janus-Pro-7B多模态AI开发环境 如果你刚接触Janus-Pro-7B这个强大的多模态模型&#xff0c;可能会被环境配置的各种问题困扰。别担心&#xff0c;今天我就带你一步步在Ubunt…...

2025年LoL国服皮肤修改器R3nzSkin避坑实录:从VS2022编译到DLL注入,我踩过的那些雷

2025年LoL国服皮肤修改器R3nzSkin避坑实录&#xff1a;从VS2022编译到DLL注入实战全解析 当你在深夜的召唤师峡谷中看到对手炫酷的限定皮肤时&#xff0c;是否也曾动过"免费体验"的念头&#xff1f;作为一款开源的外部DLL修改器&#xff0c;R3nzSkin确实能让玩家在本…...

STM32 TIM编码器模式实战:如何精准计算步进电机闭环控制的脉冲对应关系?

STM32 TIM编码器模式实战&#xff1a;步进电机闭环控制中的脉冲精确换算 步进电机在工业自动化、3D打印和精密仪器中扮演着关键角色&#xff0c;而闭环控制则是确保其运动精度的核心技术。许多工程师在实现闭环控制时&#xff0c;常常困惑于如何准确建立编码器脉冲与电机控制脉…...

Nunchaku FLUX.1 CustomV3问题解决:提示词怎么写?参数怎么调?一篇搞定

Nunchaku FLUX.1 CustomV3问题解决&#xff1a;提示词怎么写&#xff1f;参数怎么调&#xff1f;一篇搞定 你是不是也遇到过这种情况&#xff1a;兴冲冲地打开了Nunchaku FLUX.1 CustomV3&#xff0c;想生成一张美美的吉卜力风格插画&#xff0c;结果出来的图片要么“货不对板…...

HUNYUAN-MT 7B翻译终端性能展示:并发请求压力测试与响应时间报告

HUNYUAN-MT 7B翻译终端性能展示&#xff1a;并发请求压力测试与响应时间报告 最近在星图GPU平台上部署了HUNYUAN-MT 7B翻译终端&#xff0c;很多朋友都好奇它的实际表现到底怎么样。特别是当多个用户同时使用时&#xff0c;它还能不能保持快速响应&#xff1f;会不会因为压力太…...

寻音捉影·侠客行企业实操案例:法务取证场景下千条采访音频线索挖掘

寻音捉影侠客行企业实操案例&#xff1a;法务取证场景下千条采访音频线索挖掘 1. 引言&#xff1a;音频线索挖掘的法务挑战 在法律取证工作中&#xff0c;经常需要处理大量的采访录音。想象一下这样的场景&#xff1a;一个商业纠纷案件&#xff0c;涉及数十个当事人的访谈录音…...

3月31枚举

...

轻量级跨平台桌面应用开发:Tauri零门槛实战指南

轻量级跨平台桌面应用开发&#xff1a;Tauri零门槛实战指南 【免费下载链接】tauri Build smaller, faster, and more secure desktop and mobile applications with a web frontend. 项目地址: https://gitcode.com/GitHub_Trending/ta/tauri 在桌面应用开发领域&#…...

2026大厂校招笔试指南(高频考点+真实趋势)

关注 霍格沃兹测试学院公众号&#xff0c;回复「资料」&#xff0c;领取人工智能测试开发技术合集很多人现在卡在同一个问题上&#xff1a;题也刷了&#xff0c;时间也花了&#xff0c;但一到笔试还是过不了。你可能也有这种感觉&#xff1a;简单题会做&#xff0c;中等题卡住&…...

如何突破Cursor AI试用限制:3种方法重新获得Pro功能

如何突破Cursor AI试用限制&#xff1a;3种方法重新获得Pro功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial…...