airflow.providers.celery.executors.celery_kubernetes_executor¶
类¶
CeleryKubernetesExecutor 由 CeleryExecutor 和 KubernetesExecutor 组成。 |
模块内容¶
- class airflow.providers.celery.executors.celery_kubernetes_executor.CeleryKubernetesExecutor(celery_executor, kubernetes_executor)[source]¶
基类:
airflow.executors.base_executor.BaseExecutor
CeleryKubernetesExecutor 由 CeleryExecutor 和 KubernetesExecutor 组成。
它根据任务上定义的队列选择要使用的执行器。当队列是配置中
[celery_kubernetes_executor]
部分的kubernetes_queue
值(默认值:kubernetes)时,选择 KubernetesExecutor 运行任务;否则,使用 CeleryExecutor。- property queued_tasks: dict[airflow.models.taskinstancekey.TaskInstanceKey, airflow.executors.base_executor.QueuedTaskInstanceType][source]¶
返回 Celery 和 Kubernetes 执行器中的排队任务。
- property running: set[airflow.models.taskinstancekey.TaskInstanceKey][source]¶
返回 Celery 和 Kubernetes 执行器中正在运行的任务。
- property job_id: int | str | None[source]¶
从 BaseExecutor 继承的属性。
由于这并非真正的执行器,而是执行器的包装器,因此我们将其实现为属性,以便能够拥有自定义 setter。
- queue_command(task_instance, command, priority=1, queue=None)[source]¶
通过 Celery 或 Kubernetes 执行器将命令加入队列。
- queue_task_instance(task_instance, mark_success=False, ignore_all_deps=False, ignore_depends_on_past=False, wait_for_past_depends_before_skipping=False, ignore_task_deps=False, ignore_ti_state=False, pool=None, cfg_path=None, **kwargs)[source]¶
通过 Celery 或 Kubernetes 执行器将任务实例加入队列。
- has_task(task_instance)[source]¶
检查任务是在 Celery 执行器中排队还是运行,或是在 Kubernetes 执行器中排队还是运行。
- 参数:
task_instance (airflow.models.taskinstance.TaskInstance) – 任务实例
- 返回:
如果此执行器知晓该任务,则返回 True
- 返回类型:
- get_event_buffer(dag_ids=None)[source]¶
返回并刷新 Celery 和 Kubernetes 执行器中的事件缓冲区。
- 参数:
- 返回:
一个事件字典
- 返回类型:
dict[airflow.models.taskinstancekey.TaskInstanceKey, airflow.executors.base_executor.EventBufferValueType]
- try_adopt_task_instances(tis)[source]¶
尝试接管因调度器作业停止而遗弃的正在运行的任务实例。
任何未被接管的任务将由调度器清除(然后变得可重新调度)
- 返回:
未能被接管的任务实例
- 返回类型:
collections.abc.Sequence[airflow.models.taskinstance.TaskInstance]
- revoke_task(*, ti)[source]¶
尝试从执行器中移除任务。
应尝试确保任务不再在 worker 上运行,并确保其从内部数据结构中清除。
它*不应*更改 Airflow 中任务的状态,或向事件缓冲区添加任何事件。
不应引发任何错误。
- 参数:
ti (airflow.models.taskinstance.TaskInstance) – 要移除的任务实例