咨询如下情景该如何处理: 3月1号提交的小时任务A,每小时调度一次,上游依赖是任务B。 3月16号早上10点30分修改小时任务A,更改上游依赖为C,并提交。 由于3月16号小时任务A的实例已经全部生成,11点A实例运行时依赖的还是B任务,导致任务报错。
对于这种在任务实例未运行之前,修改任务的依赖关系的,如何让任务按照最新的依赖关系去运行呢?
针对这种情况,您可以尝试以下几种方法:
手动停止已经生成的任务实例,等待新的依赖关系生效后,再手动触发任务运行。
缩短实例生成周期或者调整任务调度时间,使得实例生成的时间尽量靠近任务修改时间。这样,任务在实例生成后,可以按照新的依赖关系运行。
在任务运行前,加一层判断逻辑,判断任务依赖的上游任务是否与最新的依赖关系一致。如果不一致,则终止任务运行,并等待新的依赖关系生效后,再手动触发任务运行。
使用流程调度工具,如Apache Airflow等,可以将任务之间的依赖关系建立成流程图,并在流程执行时,自动根据最新的依赖关系去运行任务。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。