oozie中事件触发input-events和done-flag
样例如下:
<coordinator-app name="test_job" frequency="${coord:days(1)}" start="${job_start}" end="${job_end}"
    timezone="GMT+08:00" xmlns="uri:oozie:coordinator:0.2">
    <controls>
        <concurrency>1</concurrency>
    </controls>
        <datasets>
        <dataset name="input_data" frequency="${coord:days(1)}"
            initial-instance="${job_start}" timezone="GMT+08:00">
            <uri-template>${monitor_workflow_run_status_path}</uri-template>
            <done-flag>_SUCCESS</done-flag>
        </dataset>
    </datasets>
    <input-events>
        <data-in name="input" dataset="input_data">
            <instance>${coord:current(-1)}</instance>
        </data-in>
    </input-events>
    <action>
        <workflow>
            <app-path>${application_path}</app-path>
            <configuration>
                <property>
                    <name>nominalformateDate</name>
                    <value>${coord:formatTime(coord:nominalTime(), "yyyyMMdd")}</value>
                </property>
        <property>
                    <name>user_name</name>
                    <value>${coord:user()}</value>
                </property>
        <property>
                    <name>nominal_date</name>
                    <value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, 'DAY'), "yyyy-MM-dd")}</value>
                </property>
            </configuration>
        </workflow>
    </action>
</coordinator-app>
当某个coordinator job 开始执行时,oozie会首先检查所有的input-events是否都已满足条件,主要检查以下内容:uri-template
1、uri-template 指定路径的文件或文件夹是否已经存在;
2、done-flag 指定的文件是否存在。
只有当input-events满足了设置的条件时,工作流才会切换到runing状态,否则将一直处于wait状态,并时刻监视指定的文件或文件夹,一但input-events满足了,工作流会立即进入running状态。
done-flag 的设置一般有三种情况:
1、直接不设置 done-flag 标签,如下:
<dataset name="input_data" frequency="${coord:days(1)}"    initial-instance="${job_start}" timezone="GMT+08:00">
    <uri-template>${monitor_workflow_run_status_path}</uri-template>
</dataset>
oozie 将默认done-flag 为 '_SUCCESS',所以需要满足 uri-template 指定路径的文件夹下存在 _SUCCESS 文件 ,job才触发执行。
2、设置done-flag 标签,但值为空,如下:
<dataset name="input_data" frequency="${coord:days(1)}"    initial-instance="${job_start}" timezone="GMT+08:00">
    <uri-template>${monitor_workflow_run_status_path}</uri-template>
    <done-flag></done-flag>
</dataset>
oozie 则直接检测 uri-template 指定路径的文件或文件夹是否存在,只要存在就直接触发 job执行。
3、设置done-flag 标签,值不为空,如下:
<dataset name="input_data" frequency="${coord:days(1)}"    initial-instance="${job_start}" timezone="GMT+08:00">
    <uri-template>${monitor_workflow_run_status_path}</uri-template>
    <done-flag>trigger.dat</done-flag>
</dataset>
oozie 则直接检测 uri-template 指定路径的文件夹下是否存在done-flag指定的文件如本例的 trigger.dat 文件,只要存在就触发 job执行。
oozie中事件触发input-events和done-flag的更多相关文章
- Yii中事件触发机制
		
控制器初始化中添加事件处理方法,在需要触发的地方直接触发 public function init() { parent::init(); // TODO: Change the autogenera ...
 - onclick事件触发 input type=“file” 上传文件
		
添加按钮: <input type="button" name="button" value="浏览" onclick="j ...
 - input输入中文时,拼音在输入框内会触发input事件的问题。
		
问题描述: 监听文本输入框的input事件,在拼写汉字(输入法)但汉字并未实际填充到文本框中(选词)时会触发input事件,如图: 需要完成的需求就是在输入阶段不触发input中的事件,选词之后文字落 ...
 - SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件
		
本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 第一篇文章中提到了如何在Profiler中创建跟踪(trace),并以服务器端(server-side)跟 ...
 - 042——VUE中组件之子组件使用$on与$emit事件触发父组件实现购物车功能
		
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - input、textarea等输入框输入中文时,拼音在输入框内会触发input事件的问题
		
监听文本输入框的input事件,在拼写汉字(输入法)但汉字并未实际填充到文本框中(选词)时会触发input事件,如图: 但是在很多情况下,只需要输入到输入框的中文字符. 解决办法: 通过查阅资料得知在 ...
 - jquery点击复选框触发事件给input赋值
		
体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/31.htm 代码如下: <!DOCTYPE html> <html xmlns=" ...
 - Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题
		
之前写过关于HorizontalScrollView滑动和按钮事件触发问题,但是不能所有的情况,最近几天一直在想这个问题,今天有一个比较好的解决思路,最终应用在项目里面效果也很好,首先说明一下功能: ...
 - ListView中的组件Button的OnClick事件触发时机
		
Android开发时,ListView中的组件Button的OnClick事件必须在ListView之外的组件事件触发后才能触发? 此处ListView无OnItemClick事件,而且ListVie ...
 
随机推荐
- 微信-js sdk invalid signature签名错误 问题解决
			
如果出现 invalid signature,首先可以确定的是你的签名算法有问题.建议:首先查看微信官方网站给出的解决方案,链接为: http://mp.weixin.qq.com/wiki/7/aa ...
 - 《tortoisegit》 Network error:Connection refused
			
在用tortoisegit克隆的时候,或者push的时候出现错误提示: 尝试修改:c:\windows\system32\drivers\etc\services 中的ssh端口,但是发现是22端口, ...
 - Cocos2d-x -- 图片菜单按钮
			
Scene* MainMenu::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); / ...
 - Spring MVC  使用拦截器 HiddenHttpMethodFilter配置Rest风格的URL
			
<!-- 4.使用Rest风格的URI,将页面普通的post请求转为指定的delete或者put请求 --> 详细使用请参考这篇博客:地址:http://blog.csdn.net/ppl ...
 - javascript 内置类型
			
JavaScript有七种内置类型: 空类型:null 未定义:undefined 布尔:boolean 数字:number 字符串:string 对象:object 符号:symbol(ES6新增) ...
 - win10 你没有足够的权限执行此操作。
			
win10 你没有足够的权限执行此操作. CreateTime--2018年4月21日08:21:31 Author:Marydon 鼠标悬浮到windows图标上,右键-->选择:以命令提 ...
 - Java中try catch finally的执行顺序问题
			
finally 语句块是在 try 或者 catch 中的 return 语句之前执行的.更加一般的说法是,finally 语句块应该是在控制转移语句之前执行,控制转移语句除了 return 外,还有 ...
 - 关于Javascript表单验证
			
//验证字符串非空 var Validator = { VerityLib: { IsNotEmpty: function (input) { if ...
 - CI:模拟进化与遗传算法
			
模拟进化计算 (Simulated Evolutionary Computation) 是近二十年来信息科学.人工智能与计算机科学的一大研究领域,由此所派生的求解优化问题的仿生类算法(遗传算法. ...
 - EntityFramework~~~三种模式
			
1:database-first 2:model-first 3:code-only 此处的code-only也就是大家叫的code-first,但是正确的叫法应该是code-only