elastic-job详解(三):Job的手动触发功能
2017-06-10 06:37
543 查看
elastic-job的任务都是使用quartz来触发的,quartz表达式一般都是定期执行。但有时候一些周期较长的任务,比如一天一次,几小时一次的任务,我们需要等待很久才能触发一次。如果我们需要测试一些功能,或者说重跑一些任务的话,手动触发任务功能就变得尤为重要,也是任务框架一般都必须要实现的特性。现在我们就来聊一聊elastic-job的手动触发任务的功能。
任务定时周期是5s,当点击触发的时候,任务立即出发,如下图。
当点击“触发”按钮时,管理页面会从zookeeper中找到当前Job下所有的任务实例,在实例节点上写入数据“TRIGGER”。如下图:
每个节点实例启动的时候,elastic-job默认会将任务触发监听器JobTriggerStatusJobListener启动,使用curator来监控instances节点的数据变化,当出现变化则触发JobTriggerStatusJobListener的dataChanged方法。从而最终调用quartz的triggerJob方法,触发任务。
触发功能的使用
elastic-job有个管理界面console,这里不在赘述怎么样部署和打开管理界面。在这个管理界面上,有个触发按钮,点击这个按钮就能触发这个任务。任务定时周期是5s,当点击触发的时候,任务立即出发,如下图。
原理分析
elastic-job依靠zookeeper传递消息和quartz本身的触发功能来实现远程触发的功能。当点击“触发”按钮时,管理页面会从zookeeper中找到当前Job下所有的任务实例,在实例节点上写入数据“TRIGGER”。如下图:
每个节点实例启动的时候,elastic-job默认会将任务触发监听器JobTriggerStatusJobListener启动,使用curator来监控instances节点的数据变化,当出现变化则触发JobTriggerStatusJobListener的dataChanged方法。从而最终调用quartz的triggerJob方法,触发任务。
相关文章推荐
- elastic-job详解(三):Job的手动触发功能
- 详解当当网的分布式架构Elastic-Job
- 详解当当网的分布式作业框架elastic-job
- JavaScript 点击触发复制功能实例详解
- 详解当当网的分布式作业框架elastic-job
- Elastic Job入门详解
- elastic-job好的文章详解
- 【实战Elastic-Job】--详解当当网分布式作业框架
- elastic-job详解(四):失效转移
- 详解当当网的分布式作业框架elastic-job
- USB虚拟逻辑分析仪,虚拟逻辑分析仪高级触发功能详解及图示
- elastic-job详解(一):数据分片
- Elastic-Job的主要功能
- elastic-job详解(二):作业的调度
- elastic-job详解(五):自定义任务参数
- elastic-job详解(一):数据分片
- elastic-job详解(一):数据分片
- elastic-job详解(二):作业的调度
- 案例丨详解当当网的分布式作业框架elastic-job
- Elastic-job-lite 2.1.3 代码详解