文档章节

Azkaban的定时调度任务分析34:定时执行下文

强子1985
 强子1985
发布于 2016/04/12 15:52
字数 323
阅读 305
收藏 0

下面说线程azkaban.trigger.TriggerManager.TriggerScannerThread是如何运作的

1)初始化

stop in azkaban.trigger.TriggerManager$TriggerScannerThread.xxx

run

初始化的上下文是:

java.lang.Exception

at azkaban.trigger.TriggerManager$TriggerScannerThread.xxx(TriggerManager.java:187)

at azkaban.trigger.TriggerManager$TriggerScannerThread.<init>(Trigg

Step completed: erManager.java:191)

at azkaban.trigger.TriggerManager.<init"thread=main", azkaban.trigger.TriggerManager$TriggerScannerThread.xxx(), line=188 bci=10

>(Tri188    }


ggerManager.java:67)

at azkaban.wemain[1] bapp.AzkabanWebServer.loadTriggerManager(AzkabanWebServer.java:275)

at azkaban.webapp.AzkabanWebServer.<init>(AzkabanWebServer.java:199)

at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:723)

=======================================================================================

2)线程的具体运行

stop in azkaban.trigger.TriggerManager$TriggerScannerThread.run


stop in azkaban.trigger.TriggerManager$TriggerScannerThread.checkAllTriggers


stop in azkaban.trigger.TriggerManager$TriggerScannerThread.onTriggerTrigger


---另外要注意:

long scannerInterval = props.getLong("trigger.scan.interval", DEFAULT_SCANNER_INTERVAL_MS);

runnerThread = new TriggerScannerThread(scannerInterval);

设置了查看周期,默认值竟然是

public static final long DEFAULT_SCANNER_INTERVAL_MS = 60000;

竟然有1分钟。。。

果然修改此值


然后继续研究,发现

private void onTriggerTrigger(Trigger t) throws TriggerManagerException {

 

List<TriggerAction> actions = t.getTriggerActions();

for (TriggerAction action : actions) {

try {

logger.info("Doing trigger actions");

System.out.println("action*************************************:" + action);

action.doAction();//重点来了!!!

} catch (Exception e) {

logger.error("Failed to do action " + action.getDescription(), e);

} catch (Throwable th) {

logger.error("Failed to do action " + action.getDescription(), th);

}

}

if (t.isResetOnTrigger()) {

t.resetTriggerConditions();

t.resetExpireCondition();

} else {

t.setStatus(TriggerStatus.EXPIRED);

}

try {

triggerLoader.updateTrigger(t);

} catch (TriggerLoaderException e) {

throw new TriggerManagerException(e);

}

}

如果屏蔽这行,exec就不会执行任务!

action的代码是azkaban.trigger.builtin.ExecuteFlowAction

============================================================

通过这里加代码观察

然后观察打印出来的日志:

正好验证了我的想法!因为我的任务也是6秒为周期!

==================================================================================

stop in azkaban.trigger.builtin.ExecuteFlowAction.doAction

run

==================================================================================

总结:定时把一个任务放入到web的一个queue中,而一次性任务则是放置1次!

© 著作权归作者所有

共有 人打赏支持
强子1985

强子1985

粉丝 875
博文 1108
码字总数 813000
作品 8
南京
架构师
私信 提问
Azkaban的定时调度任务分析33:定时执行上文

之前,我们研究了执行1次的任务,但是实际生产环境中,我们可能需要很多个定时调度的需求, 所以,接下来,我们来研究定时调度的原理! ==================================================...

强子哥哥
2016/04/12
180
0
强子哥哥/MyAzkaban

#MyAzkaban Azkaban是由Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。 Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一...

强子哥哥
2016/04/15
0
0
我的第2个开源项目:MyAzkaban-3.0.0

网址: http://git.oschina.net/qiangzigege/MyAzkaban http://azkaban.github.io/azkaban/docs/latest 官方例子: https://github.com/joeharris76/azkabanexamples 为什么要做这个东西? ......

强子哥哥
2016/04/14
888
0
#研发解决方案#分布式并行计算调度和管理系统Summoner

郑昀 创建于2015/11/10 最后更新于2015/11/12 关键词:佣金计算、定时任务、数据抽取、数据清洗、数据计算、Java、Redis、MySQL、Zookeeper、azkaban2、oozie、mesos Summoner 是国玺部门推出...

旁观者-郑昀
2016/01/08
144
0
批量工作流任务调度器--MyAzkaban

azkaban是由Linkedin开源的一个批量工作流任务调度器,在研究3.0.0版本的过程中,发现有一些问题:比如 定时调度参数下拉框中秒选项默认不显示、根据工作类型生成实例时有bug。所以创建此项目...

强子哥哥
2016/04/15
925
2

没有更多内容

加载失败,请刷新页面

加载更多

BigDecimal 比较大小

通过BigDecimal的compareTo方法来进行比较。 返回的结果是int类型: -1表示小于,0是等于,1是大于

嘴角轻扬30
6分钟前
1
0
PHP实现excel导出

1:前端代码 <div id=‘export’>导出excel表单</div> // //导入excel文件 $("#export").on('click', function(){ $.ajax({ url:"importexcel.php", type:'POST', dataType:'json', data:{}......

葬-花
7分钟前
1
0
内存性能的正确解读

一台服务器,不管是物理机还是虚拟机,必不可少的就是内存,内存的性能又是如何来衡量呢。 1. 内存与缓存 现在比较新的CPU一般都有三级缓存,L1 Cache(32KB-256KB),L2 Cache(128KB-2MB)...

阿里云官方博客
9分钟前
1
0
《边缘云计算技术及标准化白皮书》

12月12日,第八届中国云计算标准和应用大会在北京隆重召开,工业和信息化部党组成员,总工程师张峰先生,中国工程院副院长陈左宁女士,中国工程院院士沈昌祥先生,中国电子技术标准化研究院院...

阿里云云栖社区
10分钟前
1
0
iOS 官方文档

https://developer.apple.com/library/prerelease/content/navigation/#section=Platforms&topic=iOS...

walking_yxf
23分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部