需求
监测dolphinscheduler调度系统,任务执行异常情况。如有异常,则发送邮件通知。
处理思路
因DS本身自带的邮件发送功能,不能正常发送邮件。
故而,通过查询DS源数据表,获取当前任务执行情况。将获取结果,使用python发送邮件。
通过shell脚本获取执行情况,并将结果保存到本地。
执行代码
mysql -hip -P3306 -u用户 -p密码 -e" use dolphinscheduler; select a.name, a.state, a.submit_time, a.start_time, a.end_time, CONCAT(TIMESTAMPDIFF(SECOND, a.start_time,a.end_time),'(s)') dur from t_ds_task_instance a, ( select name, max(submit_time) submit_time from t_ds_task_instance group by name ) b where a.name=b.name and a.submit_time=b.submit_time and substr(a.start_time,1,10)='${deal_day}' and a.state not in(0,1,7) union all select a.name, a.state, a.submit_time, a.start_time, '-' end_time, CONCAT(cast(TIMESTAMPDIFF(SECOND, a.start_time,current_timestamp)/60/60 as decimal(10,2)),'(h)') dur from t_ds_task_instance a, ( select name, max(submit_time) submit_time from t_ds_task_instance group by name ) b where a.name=b.name and a.submit_time=b.submit_time and substr(a.submit_time,1,10)='${deal_day}' and a.state in(1,10,11) and TIMESTAMPDIFF(SECOND, a.start_time,current_timestamp)>7200; " > rwjk.txt