首页 > 数据库 >XXL-JOB定时任务框架(Oracle定制版)

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

时间:2023-04-13 09:57:39浏览次数:49  
标签:json job JOB link Oracle new XXL xxl

特点

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框架一直在不断更新完善,社区也十分丰富,因此它被众多公司使用。

公众号

标签:json,job,JOB,link,Oracle,new,XXL,xxl
From: https://www.cnblogs.com/guoxiaoyu/p/17310243.html

相关文章

  • 漏洞-Oracle MYSQL Server 安全漏洞(CVE-2022-1292)
    https://blog.csdn.net/weixin_45839894/article/details/126158078openssl:relocationerror:openssl:symbolEVP_mdc2versionOPENSSinedinfilelibcrypto.so.1.1withlinktimereference建议先删掉/usr/bin/openssl......
  • oracle 常用数据字典表说明
    常用数据字典表数据字典表是oracle存放数据库信息的地方,其用途是用来描述数据的。数据字典表分类数据字典主要可分为四部分(1)内部RDBMS表:x$,用于跟踪内部数据库信息,维持DB的正常运行。是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。(2)数据字典表:$,如tab......
  • 如何将oracle.sql.TIMESTAMP 转换为 java date
    privateStringgetDate(Objectvalue){Timestamptimestamp=null;try{timestamp=(Timestamp)value;}catch(Exceptione){timestamp=getOracleTimestamp(value);}if(timestamp!=null)return(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss.S&......
  • 在 Oracle 中查找 CPU 使用最多的会话或 SQL 查询
    Oracle中的前10个CPU消耗会话colprogramforma30heading"Program"colCPUMinsform99990heading"CPUinMins"selectrownumasrank,a.*from(SELECTv.sid,sess.Serial#,program,v.value/(100*60)CPUMinsFROMv$statnames,v$sess......
  • Oracle SQL优化之STA(SQL Tuning Advisor)
    前言:经常可以碰到优化sql的需求,开发人员直接扔过来一个SQL让DBA优化,然后怎么办?当然,经验丰富的DBA可以从各种方向下手,有时通过建立正确索引即可获得很好的优化效果,但是那些复杂SQL错综复杂的表关联,却让DBA们满头大汗。如下特别介绍一种oracle官方提供的科学优化方法STA,经过实践,不......
  • oracle启动监听后提示no services的解决办法
    0x00问题经常安装完后,dbca建库,netca增加监听后,命令行提示:Thelistenersupportsnoservices0x01解决方法altersystemsetlocal_listener="(address=(PROTOCOL=TCP)(HOST=你的IP地址)(PORT=1521))";altersystemregister;0x02查看监听lsnrctlstatus0x0......
  • 批处理返回Oracle的表数据
    bat:@ECHOOFFGOTOchoice:choiceECHO===============ECHO选择要查询的系统ECHO1.准生产集中ECHO2.准生产两融ECHO3.准生产一柜通ECHO4.仿真集中ECHO5.仿真两融ECHO6.仿真一柜通ECHO===============SET/pa=输入数字:IF%a%==1GOTO1IF%a%==2GOTO2IF......
  • SQLServer 客户端链接服务器到Oracle数据库 全攻略
    引言和第三方公司进行接口对接时,发现某一个模块第三方只提供一个视图,还让我们直接调用他们数据库......
  • Oracle EBS 采购到入库所经历的表
    --采购到入库所经历的表--0.请购单--创建请购单方式有--a.从外挂系统导入请购的接口表PO_REQUISITIONS_INTERFACE_ALL,并允许请求(名称:导入申请)select *  from po_requisitions_interface_all where interface_source_code = 'TEST KHJ';--b.在系统中创建请购单(路径......
  • Oracle EBS开发习惯
    来源 https://www.cnblogs.com/benio/archive/2010/11/11/1875274.html近几年有幸参与了一些大开发项目的项目管理和监督工作,发现很多开发人员对一些概念或者程序的写法不是很清楚,这也包括一些高级的开发人员也会犯一些基本的错误,因此我就整理一下大家容易犯的错误,希望大家能......