一个完整的sample #
//获取变量,以下为python语法(option)
P_DAYS = 12
MSG = '------------------------------------------------------------'
report_time = datetime.datetime.now()- datetime.timedelta(days=int(P_DAYS))
P_START_ZYM= report_time.strftime('%Y%m')
//以下为JOB专署语法
#link lastdag 30 3600 --每30秒轮询前置任务,超时1小时
#impala_sql sqlfile1 --执行impala
#hive_sql sqlfile2 --执行hive
#dataset checkinfo 321 --数据查询,校验 --
#sp sp1 report_time,MSG --执行SP,传入参数
#ktr myktr P_START_ZYM --执行kettle ktr, 传入参数
#kjb mykjb P_START_ZYM
#/kjb abc --当此job暂时不要时,可/注释
-- 分层标记,可折叠 //:
#datax jobabc --备注
#datax jobabc --备注
--以下为python语法(option)
//////////////
lastdag >> sqlfile1 >> \
validate >> sp1 >> [myktr, mykjb]
lastdag >> sqlfile2
任务依赖设定关系说明 #
在任务调度或工作流管理系统中,设置任务之间的依赖关系是非常常见的操作。这些依赖关系决定了任务执行的顺序,即一个任务(上游任务)成功完成后,才能开始执行依赖于它的任务(下游任务)。下面是对上述代码段中提到的概念和操作的解释:
设置依赖关系: t1.set_downstream(t2):这表示t2依赖于t1。换句话说,t1必须成功运行后,t2才能开始运行。 t2.set_upstream(t1):这与t1.set_downstream(t2)是等价的,表示t2的上游任务是t1。 使用位运算符设置依赖关系: t1 » t2:这是设置依赖关系的另一种简洁方式,与t1.set_downstream(t2)等价,表示t2依赖于t1。 t2 « t1:这与t2.set_upstream(t1)等价,表示t2的上游是t1。 链式设置多个依赖关系: t1 » t2 » t3:这表示t2依赖于t1,而t3又依赖于t2。使用这种方式可以非常简洁地设置多个任务之间的依赖链。 设置多个下游任务: t1.set_downstream([t2, t3]):这表示t1成功运行后,t2和t3可以同时开始运行,因为它们都依赖于t1。 t1 » [t2, t3]:这与t1.set_downstream([t2, t3])等价,是设置多个下游任务的另一种简洁方式。 [t2, t3] « t1:虽然这种写法不常见,但从逻辑上看,它意味着t2和t3都将t1视为其上游任务,与前面的操作效果相同