deadlock - ExternalTaskOperators 死锁:为什么,多久一次,以及如何解决这个问题?
问题描述
我正在实现预定的管道,目前我正在使用一个ExternalTaskOperator
来设置 DAG 间的依赖关系。我在这里读到,如果您不手动提高上游任务的优先级,则可能会出现死锁。
我想知道这种情况有多普遍,您如何手动提高不同任务的优先级(许多源代码,如 Bash 和 Python 运算符,似乎没有priority_level
参数),以及是否有任何其他更好的方法设置 DAG 间的依赖关系。
谢谢
解决方案
我从未ExternalTaskSensor
在生产中使用过,因此无法评论死锁发生的频率。但除了你已经提到的priority_weight
/之外,我还能想出另外两种方法weight_rule
来克服这个问题
- 使用Airflow
pool
保证集合任务的专用插槽 - 使用s ( )的
mode
参数Sensor
BaseSensorOperator
推荐阅读
- verilog - 如何在verilog中将启用端口连接到4x1 MUX?
- c# - 如果失败,重试并行 API 调用
- kotlin - Reactor:使用 zipWhen 与另一个元组后如何获得一个扁平元组?
- python - 无法将我的本地系统客户端套接字连接到基于云的套接字服务器
- javascript - 如何使用外部 js 脚本和 css 自定义对话框
- bamboo - 无法下载 Bamboo 远程代理 jar
- android - 如何在不使用 Gradle 复制 jar 的情况下将一个模块的源包含在另一个模块中?
- java - 如何记录 SpringBoot 请求验证错误?
- javascript - 导入和导出问题 Javascript(无 node.js)
- powerbi - 获取计算日期