python - 气流 Python 产量声明
问题描述
我知道yield
用于定义生成器,替换函数的返回以向其调用者提供结果,但是下面的 yield 语句是做什么的?它们看起来不像生成器,yield 后面也跟着 return。
代码来自文件:airflow/ti_deps/deps/task_concurrency_dep.py
class TaskConcurrencyDep(BaseTIDep):
"""
This restricts the number of running task instances for a particular task.
"""
NAME = "Task Concurrency"
IGNOREABLE = True
IS_TASK_DEP = True
@provide_session
def _get_dep_statuses(self, ti, session, dep_context):
if ti.task.task_concurrency is None:
yield self._passing_status(reason="Task concurrency is not set.")
return
if ti.get_num_running_task_instances(session) >= ti.task.task_concurrency:
yield self._failing_status(reason="The max task concurrency "
"has been reached.")
return
else:
yield self._passing_status(reason="The max task concurrency "
"has not been reached.")
return
解决方案
推荐阅读
- javascript - 转换以将 API 数据发送到要在折线图中使用的其他组件
- ios - IOS UITableView display first 5 rows of an array
- node.js - 对不同的 html 页面使用 href 标记,但在 express 中具有相同的 url id
- ruby-on-rails - Rails API 422 无法处理的实体:没有可用的验证密钥,heroku
- android - 按钮在 AVD 中不可见
- python - 使用元数据而不是图像训练模型
- c++ - 您可以将 NULL 指针变量分配给指针变量吗?
- netty - 通道管道 addLast 有时不起作用
- vue.js - Vuex:未知突变类型:dropdownState
- python - 无法使用 div 类从 3 个下拉列表中进行选择 - python selenium