datastage tips 二:使用crontab+shell定时调度datastage job
2013-01-30 17:17
537 查看
在使用datastage抽取数据的过程中,经常会遇到要求以准实时(如每隔3分钟同步一次数据)进行数据抽取的需求。这些要求可以使用crontab+shell来实现。如下图所示,此为整个shell调度DS JOB的流程:首先使用dsjob的jobinfo参数获取该JOB的进程号(process_id)和状态值(state).当state异常时,重置该JOB;当state正常时,判断该job是否在运行(即process_id是否为0)。若process_id=0,表示目前该JOB未运行,正常调度该JOB,若process_id>0,表示该JOB正在运行阶段,转置结束处。
代码如下:
然后,通过crontab进行上述脚本的调度,即可。
代码如下:
#!/bin/sh . /home/dsadm/.bash_profile APT_CONFIG_FILE=/opt/IBM/InformationServer/Server/Configurations/default.apt PROJECT_NAME=$1 JOB_NAME=$2 #job stat flag status=1 job_process_id=1 cd $DSHOME/bin #check job status job_process_id=`./dsjob -jobinfo "$PROJECT_NAME" "$JOB_NAME"|sed -n '10,1p'|sed 's/\(.*\)\([:]\)\([ ]\{1,\}\)\([0-9]\{1,\}\)/\4/g'` ./dsjob -jobinfo $PROJECT_NAME $JOB_NAME echo "job_process_id=dsjob -jobinfo $PROJECT_NAME $JOB_NAME" status=`./dsjob -jobinfo $PROJECT_NAME $JOB_NAME|sed -n '1,1p'|sed 's/\(.*\)\([:]\)\([ ]\{1,\}\)\(.*\)/\4/g'|grep FAILED|wc -l` echo "status=dsjob -jobinfo $PROJECT_NAME $JOB_NAME" if [ $status -ne 0 ]; then ./dsjob -run -mode RESET $PROJECT_NAME $JOB_NAME echo "Invoke: dsjob -run -mode RESET $PROJECT_NAME $JOB_NAME" else if [ "$job_process_id" -eq 0 ]; then ./dsjob -run -param \$APT_CONFIG_FILE="$APT_CONFIG_FILE" $PROJECT_NAME $JOB_NAME fi fi echo "Finished"
然后,通过crontab进行上述脚本的调度,即可。
相关文章推荐
- datastage tips 一:清除Datastage job日志信息
- Linux中使用crontab命令定时执行shell脚本或其他Linux命令
- 任务调度框架Quartz(二) 使用job、trigger、schedule调用定时任务
- crontab定时调度使用
- 使用crontab定时执行shell脚本
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- 使用crontab,让linux定时执行shell脚本
- 使用crontab,让linux定时执行shell脚本【crontab -e】
- linux直接执行shell脚本正常,使用定时任务crontab执行出错
- Spring使用Quartz定时调度Job无法Autowired注入Service的解决方案
- Java定时任务调度工具详解(4)— Quartz 之 Job/JobDetail/JobExecutionContext/JobDataMap
- crontab中使用环境变量的方法(手动执行shell脚本可以,在定时任务中不行)
- 使用crontab,让linux定时执行shell脚本
- 使用crontab定时执行shell脚本
- [linux-shell]crontab的介绍和使用(linux的定时)
- 使用crontab和shell定时自动检查tomcat是否正常启用
- Spring使用Quartz定时调度Job无法Autowired注入Service的解决方案
- 使用linux crontab做jar程序定时调度任务
- 工具 07 使用crontab,让linux定时执行shell脚本
- 使用crontab,让linux定时执行shell脚本