一 elastic-job
1.1 案例场景分析
1.设置4个分片,10秒执行一次。
分片弹性扩容缩容机制测试:
测试1:测试窗口1不关闭,再次运行main方法查看控制台日志,注意修改application.properties中的 server.port,保证端口不冲突
测试2:测试窗口1 和测试窗口2 不关闭,再次运行2次main方法,达到4个任务实例,查看控制台日志
测试3:测试窗口1 和测试窗口2 不关闭,将测试窗口3和测试窗口4任务停止
测试4:测试窗口1不关闭 将测试窗口2 任务停止
结论:
1、任务运行期间,如果有新机器加入,则会立刻触发分片机制,将任务相对 平均的分配到每台机器上并行执行调度。
2、如果有机器退出集群,则经过短暂的一段时间(大约40秒)后又会重 新触发分片机制
二 dataflow类型作业(了解)
Dataflow
类型的定时任务需实现
DataflowJob
接口,该接口提供
2
个方法可供覆盖,分别用于抓取
(fetchData)
和处 理(processData)
数据。咱们继续对例子进行改造。
Dataflow
类型用于处理数据流,它和
SimpleJob
不同,它以数据流的方式执行,调用
fetchData
抓取数据,直到抓 取不到数据才停止作业。
每次运行定时任务都会开启
4
个线程执行
fetchData
抓取数据,抓取以后调用
processData
处
理数据,如果是流式处理数据(
new DataflowJobConfiguration
第三个参数为
true
)且
fetchData
方法的返回值为 null或集合长度为空时,作业才停止处理。
三 开启记录表的配置(了解)
JOB_EXECUTION_LOG
记录每次作业的执行历史
JOB_STATUS_TRACE_LOG
记录作业状态变更痕迹表。可通过每次作业运行的
task_id
查询作业状态变化的生命周期 和运行轨迹。
四 elastic-job的管控台
4.1 管控台
elastic-job中提供了一个elastic-job-lite-console控制台
4.2 dump命令
使用
Elastic-Job-Lite
过程中可能会碰到一些问题,导致作业运行不稳定。由于无法在生产环境调试,通过
dump
命 令可以把作业内部相关信息dump
出来,方便开发者
debug
分析。