一 elastic-job运维篇
1.1 事件追踪
Elastic-Job-Lite
在配置中提供了
JobEventConfiguration
,
支持数据库方式配置
,会在数据库中自动创建
JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG两张表以及若干索引
,来记录作业的相关信息。
1.1.1 引入数据源配置
配置的代码如下:
1.1.2 启动项目
启动项目后会创建两张表:JOB_EXECUTION_LOG 和JOB_STATUS_TRACE_LOG
1.JOB_EXECUTION_LOG
记录每次作业的执行历史。分为两个步骤:
a)作业开始执行时, 向数据库插入数据,除
failure_cause
和
complete_time
外的其他字段均不为空。
b)作业完成执行时, 向数据库更新数据,更新
is_success, complete_time
和
failure_cause(
如果作业执行失败
)
。
2.
JOB_STATUS_TRACE_LOG记录作业状态变更痕迹表。可通过每次作业运行的task_id查询作业状态变化的生命周期 和运行轨迹。
二 elastic-job的管控台
2.1 设计理念
elastic-job
中提供了一个
elastic-job-lite-console
控制台 ,设计理念:
1.
本控制台和
Elastic Job
并无直接关系,
是通过读取Elastic Job的注册中心数据展现作业状态,或更新注册中心 数据修改全局配置。
2.
控制台只能控制作业本身是否运行,但不能控制作业进程的启停,因为控制台和作业本身服务器是完全分布式的,控制台并不能控制作业服务器。
主要功能
1. 查看作业以及服务器状态
2. 快捷的修改以及删除作业设置
3. 启用和禁用作业
4. 跨注册中心查看作业
5. 查看作业运行轨迹和运行状态
不支持项
1.
添加作业。因为作业都是在首次运行时自动添加,使用控制台添加作业并无必要。直接在作业服务器启动包 含Elastic Job
的作业进程即可。
2.2管控台的操作
elastic-job中提供了一个elastic-job-lite-console控制台
1.操作
2.启动
进入
bin
目录 并执行:
打开浏览器访问
http://localhost:8899/
即可访问控制台。
8899
为默认端口号,可通过启动脚本输入
-p
自定义端 口号。
elastic
-
job
-
lite
-
console
-
${version}.tar.gz
也可通过
elastic-job
源码用
mvn install
编译获取。
输入用户名
root
密码
root
即可打开主界面 如下图
3.配置
4.查看
2.3 数据源配置查看
1.配置事件追踪数据源
在事件追踪数据源配置页面点添加按钮,输入相关信息
2.查看记录信息
2.4 dump命令
使用
Elastic-Job-Lite
过程中可能会碰到一些问题,导致作业运行不稳定。由于无法在生产环境调试,通过
dump
命 令可以把作业内部相关信息dump
出来,方便开发者
debug
分析。
三 dataflow类型作业(了解)
3.1 dataflow作业类型
Dataflow
类型的定时任务需实现
DataflowJob
接口,该接口提供
2
个方法可供覆盖,分别用于
抓取(fetchData)和处 理(processData)数据
。咱们继续对例子进行改造。
Dataflow
类型用于处理数据流,它和
SimpleJob
不同,它以数据流的方式执行,
调用fetchData抓取数据,直到抓 取不到数据才停止作业。
3.2 dataflow代码
3.3 执行结果
结论:
每次运行定时任务都会开启
4
个线程执行
fetchData
抓取数据,抓取以后调用
processData
处
理数据,如果是流式处理数据(
new DataflowJobConfiguration
第三个参数为
true
)
且fetchData方法的返回值为 null或集合长度为空时,作业才停止处理。