添加依赖(3.0.1是目前最新的Releases版本):

        <dependency><groupId>org.apache.shardingsphere.elasticjob</groupId><artifactId>elasticjob-lite-core</artifactId><version>3.0.1</version></dependency>

ElasticJob提供了事件追踪功能,可通过事件订阅的方式处理调度过程的重要事件,用于查询、统计和监控。目前提供了基于关系型数据库的事件订阅方式记录事件,开发者也可以通过SPI自行扩展,博主在下面这篇博客中介绍了如何通过SPI自行扩展作业类型,方式是类似的。

  • ElasticJob‐Lite:扩展作业类型

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.kaven</groupId><artifactId>job</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.apache.shardingsphere.elasticjob</groupId><artifactId>elasticjob-lite-core</artifactId><version>3.0.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version><scope>provided</scope></dependency></dependencies>
</project>

作业定义(以Simple作业为例):

package com.kaven.job;import lombok.SneakyThrows;
import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;import java.text.SimpleDateFormat;
import java.util.Date;/*** @Author: ITKaven* @Date: 2021/11/20 17:02* @Blog: https://kaven.blog.csdn.net* @Leetcode: https://leetcode-cn.com/u/kavenit* @Notes:*/
public class MySimpleJob implements SimpleJob {private static final SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");@SneakyThrows@Overridepublic void execute(ShardingContext shardingContext) {switch (shardingContext.getShardingItem()) {case 0:System.out.println(formatter.format(new Date()) + " : ShardingItem[0]");Thread.sleep(2000);break;case 1:System.out.println(formatter.format(new Date()) + " : ShardingItem[1]");Thread.sleep(2000);break;case 2:System.out.println(formatter.format(new Date()) + " : ShardingItem[2]");Thread.sleep(2000);break;default:System.out.println(formatter.format(new Date()) + " : Unknown ShardingItem");}}
}

启动类Application

package com.kaven.job;import com.mysql.cj.jdbc.MysqlDataSource;
import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.lite.api.bootstrap.impl.ScheduleJobBootstrap;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
import org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperConfiguration;
import org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter;
import org.apache.shardingsphere.elasticjob.tracing.api.TracingConfiguration;import javax.sql.DataSource;/*** @Author: ITKaven* @Date: 2021/11/20 17:05* @Blog: https://kaven.blog.csdn.net* @Leetcode: https://leetcode-cn.com/u/kavenit* @Notes:*/
public class Application {public static void main(String[] args) {new ScheduleJobBootstrap(createRegistryCenter(), new MySimpleJob(),createJobConfiguration()).schedule();}// 注册中心private static CoordinatorRegistryCenter createRegistryCenter() {ZookeeperConfiguration zc = new ZookeeperConfiguration("192.168.31.172:9000", "my-job");zc.setConnectionTimeoutMilliseconds(40000);zc.setMaxRetries(5);CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(zc);regCenter.init();return regCenter;}// 数据源private static DataSource getDataSource() {MysqlDataSource dataSource = new MysqlDataSource();dataSource.setUser("root");dataSource.setPassword("ITkaven@666.com");dataSource.setURL("jdbc:mysql://localhost:3306/trace?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true");return dataSource;}// 作业配置private static JobConfiguration createJobConfiguration() {TracingConfiguration tracingConfig = new TracingConfiguration<>("RDB", getDataSource());return JobConfiguration.newBuilder("MySimpleJob", 3).description("该作业有三个分片,每隔一分钟执行一次").cron("30 * * * * ?").addExtraConfigurations(tracingConfig).overwrite(true).failover(true).build();}
}

执行作业后,数据库就会有作业的执行记录。

ElasticJob‐Lite的事件追踪就介绍到这里,如果博主有说错的地方或者大家有不同的见解,欢迎大家评论补充。

ElasticJob‐Lite:事件追踪相关推荐

  1. Elastic-job系列(三)-------- 控制台作业事件追踪TODO

    一.简介 esjob提供了任务事件追踪功能,通过做数据源配置,监听事件,会在任务执行的时候在指定的数据源创建俩张表,job_execution_log, 和 job_status_trace_log. ...

  2. springboot整合elasticJob实战(纯代码开发三种任务类型用法)以及分片系统,事件追踪详解...

    一 springboot整合 介绍就不多说了,只有这个框架是当当网开源的,支持分布式调度,分布式系统中非常合适(两个服务同时跑不会重复,并且可灵活配置分开分批处理数据,贼方便)! 这里主要还是用到zo ...

  3. Google Analytics虚拟页面和事件追踪的区别

    今天在蓝鲸的网站分析笔记中,看了Google Analytics虚拟页面和事件追踪这两个功能的介绍文章,两者是事件跟踪(用来记录不产生页面浏览的用户交互行为)的两种方式.但是仔细对比后却有所区别,具体 ...

  4. ElasticJob‐Lite:HTTP作业

    ElasticJob的作业分类基于class和type两种类型.基于class的作业需要开发者自行通过实现接口的方式织入业务逻辑:基于type的作业则无需编码,只需要提供相应配置即可.基于class的 ...

  5. ElasticJob‐Lite:Script作业

    ElasticJob的作业分类基于class和type两种类型.基于class的作业需要开发者自行通过实现接口的方式织入业务逻辑:基于type的作业则无需编码,只需要提供相应配置即可.基于class的 ...

  6. 全球与中国事件追踪软件市场深度研究分析报告

    [报告篇幅]:92 [报告图表数]:124 [报告出版时间]:2022年3月 报告摘要 本文研究全球及中国市场事件追踪软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中国 ...

  7. 《Windows内核原理与实现笔记》(二)注册表和配置管理器,事件追踪,安全性管理

    注册表和配置管理器 Windows系统很多组件都是可以配置的,内核组建通常支持一些参数,甚至有些完全依赖于系统配置信息.例如I/O管理器和即插即用管理器在初始化阶段根据系统设置来例句和加载设备驱动程序 ...

  8. php跳转 不能加cnzz统计,页面添加友盟(CNZZ)统计和事件追踪

    1. 在页面中引入友盟(CNZZ)统计的 JS 代码 // 统计 var cnzz_protocol = (("https:" == document.location.proto ...

  9. 红芯事件追踪:官方致歉承认基于开源架构;创始人履历被指夸大

    允中 发自 凹非寺 量子位 出品 | 公众号 QbitAI 昨日引发热议的"红芯浏览器套壳"一事迅速发展,截止目前的进展如下. 红芯浏览器基于谷歌Chrome内核 8月16日,陈本 ...

  10. iPad用户隐私泄露事件追踪

    日前,一个名为Goatse Security的***团体,破解了AT&T网站的安全漏洞,获得了大约11.4万名iPad用户的注册信息,这些用户的重要信息包括E- mail地址等被放到了互联网上 ...

最新文章

  1. 深度学习在美团配送ETA预估中的探索与实践
  2. Codeforces Round #171 (Div. 2)
  3. 工业级服务器销售电话,工业级服务器
  4. MATLAB数字信号处理函数
  5. Spark 运行模式 standalong yarn
  6. awk的sub函数和gsub函数的用法
  7. 21个Docker 命令
  8. 深度学习的应用及主流框架
  9. 刀片存储助力发挥融合基础架构优势
  10. element UI实现动态生成多级表头
  11. 监控行业常见视频格式
  12. python round用法_Python round 函数
  13. Problem - 1077E - E. Thematic Contests(暴力+二分)
  14. Python相似度计算【大总结】
  15. 3D坦克大战联网对战版课程设计报告
  16. Privoxy + tor = ?
  17. 删除商品信息恢复的java_零基础学习java------35---------删除一个商品案例,删除多个商品,编辑(修改商品信息),校验用户名是否已经注册(ajax)...
  18. 樱花的季节,教大家用canvas画出飞舞的樱花树
  19. Python中类函数中self是什么
  20. 香港科大2020年TOP12人气热帖@商学院公众号

热门文章

  1. 写给零基础入坑蓝桥杯的同学
  2. Envi处理大气校正时报错,怎么解决呀
  3. 自底向上的归并排序算法
  4. 自底向上和自顶向下的区别
  5. 两款超级好用的PDF工具PDF Shaper,pdfFactory FinePrint虚拟打印机绿色单文件版
  6. chmod 777和755
  7. lj245a引脚功能图_JRC4558中文资料|引脚图及功能|应用电路图
  8. 无模型matlab程序实验报告,MATLAB仿真瑞利衰落信道实验报告结果
  9. 移动联通基站定位查询
  10. iec611313标准下载_iec611313编程标准.ppt