Elastic-Job分布式任务调度(4):Elastic-Job高级

news2024/11/29 4:02:33

1 事件追踪

Elastic-Job-Lite在配置中提供了JobEventConfiguration,支持数据库方式配置,会在数据库中自动创建JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG两张表以及若干索引,来记录作业的相关信息。

1.1 修改Elastic-Job配置类

在ElasticJobConfig中修改:

    @Autowired
    private DataSource dataSource;
    
    /**
     * 任务启动
     *
     * @return
     */
    @Bean(initMethod = "init")
    public SpringJobScheduler initSimpleElasticJob() {
        SimpleJob job1 = fileBackupJobDb;
//        // 定义Lite作业根配置
        JobEventConfiguration jobEventConfig = new JobEventRdbConfiguration(dataSource);// 增加任务事件追踪配置
        SpringJobScheduler jobScheduler = new SpringJobScheduler(job1,registryCenter,
                createJobConfiguration(job1.getClass(),"0/10 * * * * ?",4,"0=text,1=image,2=radio,3=vedio"),
                        jobEventConfig);
        return jobScheduler;
    }

1.2.启动项目

启动后会发现在elastic_job_demo数据库中新增以下两个表。

job_execution_log:

 

job_status_trace_log:

 

 

JOB_EXECUTION_LOG记录每次作业的执行历史。分为两个步骤:

        1. 作业开始执行时向数据库插入数据,除failure_cause和complete_time外的其他字段均不为空。

        2. 作业完成执行时向数据库更新数据,更新is_success, complete_time和failure_cause(如果作业执行失败)。

JOB_STATUS_TRACE_LOG记录作业状态变更痕迹表。可通过每次作业运行的task_id查询作业状态变化的生命周期和运行轨迹。

2 运维

elastic-job中提供了一个elastic-job-lite-console控制台

设计理念

  1. 本控制台和Elastic Job并无直接关系,是通过读取Elastic Job的注册中心数据展现作业状态,或更新注册中心数据修改全局配置。
  2. 控制台只能控制作业本身是否运行,但不能控制作业进程的启停,因为控制台和作业本身服务器是完全分布式的,控制台并不能控制作业服务器。

主要功能

  1. 查看作业以及服务器状态
  2. 快捷的修改以及删除作业设置
  3. 启用和禁用作业
  4. 跨注册中心查看作业
  5. 查看作业运行轨迹和运行状态

不支持项

        1. 添加作业。因为作业都是在首次运行时自动添加,使用控制台添加作业并无必要。直接在作业服务器启动包含Elastic Job的作业进程即可

具体搭建步骤如下:

2.1 搭建

下载地址:https://raw.githubusercontent.com/miguangying/elastic-job-lite-console/master/elastic-job-lite-console-2.1.4.tar.gz

解压缩 elastic-job-lite-console-${version}.tar.gz 。

进入 bin目录 并执行:

bin\start.sh

打开浏览器访问 http://localhost:8899/ 即可访问控制台。8899为默认端口号,可通过启动脚本输入-p自定义端口号。

elastic-job-lite-console-${version}.tar.gz 也可通过 elastic-job 源码用 mvn install编译获取。

输入用户名 root 密码 root 即可打开主界面如下图

 

提供两种账户,管理员及访客,管理员拥有全部操作权限,访客仅拥有察看权限。默认管理员用户名和密码是root/root,访客用户名和密码是guest/guest,可通过conf\auth.properties修改管理员及访客用户名及密码。

2.2 配置及使用

1 配置注册中心地址

先启动zookeeper 然后在注册中心配置界面点添加

点击提交后,然后点连接(zookeeper必须处于启动状态)

 

 

连接成功后,在作业维度下可以显示该命名空间下作业名称、分片数量及该作业的cron表达式等信息在服务器维度可以查看服务器ip、当前运行的实例数、作业总数等信息。

 

 

2 配置事件追踪数据源

在事件追踪数据源配置页面点添加按钮,输入相关信息

 

提交后点击连接即可在作业历史下查看作业历史记录

 

 

3 dump命令

使用Elastic-Job-Lite过程中可能会碰到一些问题,导致作业运行不稳定。由于无法在生产环境调试,通过dump命令可以把作业内部相关信息dump出来,方便开发者debug分析。

(1)开启dump监控端口,并运行程序

修改中ElasticJobConfifig中的createJobConfifiguration方法里JobRootConfifiguration的配置,开启dump监控端口:

JobRootConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig)
.monitorPort(9888)//设置dump端口
.build();

(2)windows中安装netcat(若操作系统中已经有nc命令,此步骤可略过)

tools文件夹内包含netcat-win32-1.12.zip,解压即可。

(3)执行dump命令

打开命令行工具,进入netcat-win32-1.12.zip的解压目录,执行以下命令:

echo dump| nc 127.0.0.1 9888 > job_debug_dump.txt

会在当前目录生成job_debug_dump.txt文件,打开job_debug_dump.txt后看到:

/com.example.demo.job.FileBackupJobDb/sharding | 
/com.example.demo.job.FileBackupJobDb/sharding/3 | 
/com.example.demo.job.FileBackupJobDb/sharding/3/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/2 | 
/com.example.demo.job.FileBackupJobDb/sharding/2/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/1 | 
/com.example.demo.job.FileBackupJobDb/sharding/1/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/0 | 
/com.example.demo.job.FileBackupJobDb/sharding/0/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/servers | 
/com.example.demo.job.FileBackupJobDb/servers/ip18 | 
/com.example.demo.job.FileBackupJobDb/servers/ip2 | 
/com.example.demo.job.FileBackupJobDb/leader | 
/com.example.demo.job.FileBackupJobDb/leader/sharding | 
/com.example.demo.job.FileBackupJobDb/leader/election | 
/com.example.demo.job.FileBackupJobDb/leader/election/latch | 
/com.example.demo.job.FileBackupJobDb/leader/election/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/instances | 
/com.example.demo.job.FileBackupJobDb/instances/ip18@-@19084 | 
/com.example.demo.job.FileBackupJobDb/config | {"jobName":"com.example.demo.job.FileBackupJobDb","jobClass":"com.example.demo.job.FileBackupJobDb","jobType":"SIMPLE","cron":"0/10 * * * * ?","shardingTotalCount":4,"shardingItemParameters":"0\u003dtext,1\u003dimage,2\u003dradio,3\u003dvedio","jobParameter":"","failover":false,"misfire":true,"description":"","jobProperties":{"job_exception_handler":"com.dangdang.ddframe.job.executor.handler.impl.DefaultJobExceptionHandler","executor_service_handler":"com.dangdang.ddframe.job.executor.handler.impl.DefaultExecutorServiceHandler"},"monitorExecution":true,"maxTimeDiffSeconds":-1,"monitorPort":9888,"jobShardingStrategyClass":"","reconcileIntervalMinutes":10,"disabled":false,"overwrite":true}

里面展示的其实就是FileBackupJob任务在Zookeeper中的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电商人必读:2022中国电商市场发展洞察报告(人群、品类、品牌、玩法).pdf(附下载链接)...

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年12月份热门报告盘点罗振宇2023年跨年演讲PPT原稿吴晓波2022年年终秀演讲PPT原稿《底层逻辑》高清配图华为2021数字化转型:从战略到执行.pdf华为项目管理金种…

如何理解操作系统

路灯很多,希望你找到自己的月亮。 作者:阿润菜菜 目录 操作系统是什么 为什么设计操作系统 理解操作系统的作用 如何理解操作系统对软硬件管理? 操作系统为什么要对软硬件资源进行管理呢? 什么是系统调用和库函数 总结 操…

【docker13】Redis面试题

面试题 问题: 1~2亿条数据需要缓存,请问如何设计这个存储案例? 回答: 单机单台不可能的,肯定是分布式存储(那如何用redis实现呢?) 解决1: 哈希取余分区 优点: 简单粗暴…

项目管理系统的类型

“系统”一词有两个不同的定义:一、定义某事如何完成的原则和程序,二、复杂整体的部分。因此,根据所使用的定义,项目管理系统也可以有两种不同的含义。 第一个是指定义如何执行项目的完整过程和原则系统。此定义包括所有项目管理以…

windows10上安装Python3.11.1

1)下载Python3.11.1 Python官网下载地址:https://www.python.org/ package意思是下载压缩安装包,installer是.exe的安装程序。 根据自己电脑需求选择,这里我选择的是64位 2)安装 双击安装包,进行安装。…

VScode编译调试C++环境

首先去官网下载vscodehttps://code.visualstudio.com/ 为了编译C/C,要使用gcc,Windows本身不支持gcc,所以有了MinGW,我用的是dev带的MinGW,也可以自己安装MinGW,或者用VS的编译器(MinGW gcc下载…

喜报!COSCon'22中国开源年会获评 2022 中国最受开发者欢迎的技术活动

2023 年 1 月 5 日,中国技术先锋年度评选2022 中国最受开发者欢迎的技术活动榜单正式发布。作为中国领先的新一代开发者社区,SegmentFault 思否依托社区活动板块(https://segmentfault.com/events)及全站数百万开发者用户行为数据…

浏览器怎么录制网页视频?3种网页视频录制方法

我们每天都会在浏览器上观看大量的视频,尤其是在爱奇艺、腾讯、哔哩哔哩等网页上。有时候就会观看到一些精彩的视频画面,就想要将这些画面给下载。那怎么把网页视频录制下来?今天本文就给大家分享3种有效的网页视频录制方法,有需要…

Linux 环境使用定时任务执行shell脚本

前言:Linux添加定时任务需要依赖crond服务,如果没有该服务,需要先安装:yum -y install crontabs 1、crond服务相关命令介绍 启动crond服务:service crond start 停止crond服务:service crond stop 重启cro…

【NI Multisim 14.0原理图设计基础——放置元器件】

目录 序言 🍉 一、放置元器件 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Multisim 14.0,打开如图所示的启动界面,完成初始化后&…

第一行代码Androiod第三版 笔记 第九章丰富你的程序,运用手机多媒体

文章目录前言一、通知渠道是什么?二、快速入门1. 书写通知2.通知有了 ,点击也没动静啊- PendingIntent3 点击完之后,通知不消失怎么办4 通过setStyle() 来是实现长文字通知5 还想放张图6 不同通知之间也有等级差异三、 使用相机7 调用相机8 从…

Linux工具学习之【gcc/g++】

✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Whatever is worth doing is worth doing well. 任何值得去做的事情&#xff0…

SpringBoot中使用Swagger详解

在Spring Boot中规范的使用Swagger进行接口测试 文章目录Swagger是什么?为什么要用Swagger?准备工作创建项目编写接口验证高级配置文档注释接口过滤自定义响应SwaggerUI的使用遇到的问题:Swagger是什么? Swagger是一套基于OpenAP…

【Kubernetes 企业项目实战】02、基于 Prometheus 和 K8s 构建智能化监控告警系统(上)

目录 一、Prometheus 基本介绍 二、Prometheus 特点 样本 三、Prometheus 组件介绍 四、Prometheus 工作流程 五、Prometheus 和 zabbix 对比分析 六、Prometheus 的几种部署模式 6.1 基本高可用模式 6.2 基本高可用 远程存储 6.3 基本 HA 远程存储 联邦集群方案…

Word文档内容如何添加双删除线

我们有时需要在Word里面添加双删除线,那么怎么添加呢?看看小编是怎么操作的吧。 首先,运行speedoffice并打开Word文件,选中需要添加双删除线的内容; 然后,点击鼠标右键,在右键菜单中选择“高级…

如何搭建云进销存-采购管理系统?

1、简介 1.1、案例简介 本文将介绍,如何搭建云进销存-采购管理。 1.2、应用场景 云进销存-采购管理应用支持多种商品特性管理,灵活适配不同主流行业商品管理要求,并可通过报表追溯查询,实现差异化的品类管理及分析。 2、设置…

【Linux】-- 进程终止进程等待

目录 深入理解fork 进程终止 进程常见退出场景 退出码 总结 进程等待 进程等待必要性 wait与waitpid 阻塞等待 非阻塞等待 总结 深入理解fork 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为…

Rhce第三次作业

1. 基于同一IP的不同端口访问不同的网站(可以通过域名去访问)ipport1 -> 对应一个域名ipport2 -> 对应一个域名使用域名1我应该访问到 ipport1对应的内容使用域名2我应该访问到 ipport2对应的内容/etc/hosts文件下写入ip和域名,进行域名解析写入192.168.137.1…

vue3学习笔记之TransitionTransitionGroup

文章目录Transition&TransitionGroup动画组件1. Transition1.1 Transition API1.2 基于CSS的过渡效果自定义过渡class Animate动画库同时使用 transition 和 animation深层级过渡与显式过渡时长duration(总持续时间)1.3 JavaScript 钩子 GreenSock…

FPGA知识汇集-GPGPU与FPGA

虽然FPGA的功能很强大,但是并非所有的设计都会使用到这样的芯片。很多系统架构师在开始的时候会斟酌到底是使用FPGA还是其他的代替方案,例如GPGPU(通用的图形处理单元)。 由于GPGPU特有的架构和处理能力,在很多现代的设…