組態參考

此頁面包含 apache-airflow-providers-celery 提供者的所有可用 Airflow 組態列表,這些組態可以在 airflow.cfg 檔案中設定或使用環境變數設定。

注意

從 Airflow 2.7.0 開始,提供者套件中嵌入的組態開始被使用。先前,組態是在 Airflow 核心套件中描述和設定的 - 因此,如果您使用的 Airflow 版本低於 2.7.0,請查看 Airflow 文件以取得 Airflow 核心中可用的組態選項列表。

注意

更多資訊請參閱 設定組態選項

[celery]

如果您在上面的 [core] 章節中使用 CeleryExecutor,則此章節僅適用

broker_url

Celery broker URL。Celery 支援 RabbitMQ、Redis 以及實驗性的 sqlalchemy 資料庫。請參閱 Celery 文件以取得更多資訊。

類型

字串

預設

redis://redis:6379/0

環境變數

AIRFLOW__CELERY__BROKER_URL

AIRFLOW__CELERY__BROKER_URL_CMD

AIRFLOW__CELERY__BROKER_URL_SECRET

celery_app_name

celery 將使用的應用程式名稱

類型

字串

預設

airflow.providers.celery.executors.celery_executor

環境變數

AIRFLOW__CELERY__CELERY_APP_NAME

celery_config_options

celery 組態選項的匯入路徑

類型

字串

預設

airflow.providers.celery.executors.default_celery.DEFAULT_CELERY_CONFIG

環境變數

AIRFLOW__CELERY__CELERY_CONFIG_OPTIONS

flower_basic_auth

使用基本身份驗證保護 Flower。接受以逗號分隔的使用者:密碼對

類型

字串

預設

''

環境變數

AIRFLOW__CELERY__FLOWER_BASIC_AUTH

AIRFLOW__CELERY__FLOWER_BASIC_AUTH_CMD

AIRFLOW__CELERY__FLOWER_BASIC_AUTH_SECRET

範例

user1:password1,user2:password2

flower_host

Celery Flower 是 Celery 的一個友善 UI。Airflow 有一個捷徑來啟動它 airflow celery flower。這定義了 Celery Flower 運行的 IP

類型

字串

預設

0.0.0.0

環境變數

AIRFLOW__CELERY__FLOWER_HOST

flower_port

這定義了 Celery Flower 運行的 port

類型

字串

預設

5555

環境變數

AIRFLOW__CELERY__FLOWER_PORT

flower_url_prefix

Flower 的根 URL

類型

字串

預設

''

環境變數

AIRFLOW__CELERY__FLOWER_URL_PREFIX

範例

/flower

operation_timeout

send_task_to_executorfetch_celery_task_state 操作逾時之前等待的秒數。

類型

浮點數

預設

1.0

環境變數

AIRFLOW__CELERY__OPERATION_TIMEOUT

pool

Celery Pool 實作。選項包括:prefork (預設)、eventletgeventsolo。請參閱:https://docs.celeryq.dev/en/latest/userguide/workers.html#concurrency https://docs.celeryq.dev/en/latest/userguide/concurrency/eventlet.html

類型

字串

預設

prefork

環境變數

AIRFLOW__CELERY__POOL

result_backend

Celery result_backend。當 job 完成時,它需要更新 job 的 metadata。因此,它會在訊息匯流排上發布訊息,或將其插入資料庫(取決於 backend)。scheduler 使用此狀態來更新 task 的狀態。強烈建議使用資料庫。如果未指定,將會使用帶有 db+ scheme prefix 的 sql_alchemy_conn https://docs.celeryq.dev/en/latest/userguide/configuration.html#task-result-backend-settings

類型

字串

預設

環境變數

AIRFLOW__CELERY__RESULT_BACKEND

AIRFLOW__CELERY__RESULT_BACKEND_CMD

AIRFLOW__CELERY__RESULT_BACKEND_SECRET

範例

db+postgresql://postgres:airflow@postgres/airflow

result_backend_sqlalchemy_engine_options

傳遞到 Celery result backend SQLAlchemy engine 的可選組態字典。

類型

字串

預設

''

環境變數

AIRFLOW__CELERY__RESULT_BACKEND_SQLALCHEMY_ENGINE_OPTIONS

範例

{"pool_recycle": 1800}

ssl_active

類型

字串

預設

False

環境變數

AIRFLOW__CELERY__SSL_ACTIVE

ssl_cacert

CA 憑證的路徑。

類型

字串

預設

''

環境變數

AIRFLOW__CELERY__SSL_CACERT

ssl_cert

用戶端憑證的路徑。

類型

字串

預設

''

環境變數

AIRFLOW__CELERY__SSL_CERT

ssl_key

用戶端金鑰的路徑。

類型

字串

預設

''

環境變數

AIRFLOW__CELERY__SSL_KEY

sync_parallelism

CeleryExecutor 用於同步 task 狀態的進程數。0 表示使用 max(1, 核心數 - 1) 個進程。

類型

字串

預設

0

環境變數

AIRFLOW__CELERY__SYNC_PARALLELISM

task_acks_late

3.6.0 版本新增。

如果 Airflow task 的執行時間超過 visibility_timeout,即使原始 task 仍在成功運行,Celery 也會將 task 重新分配給 Celery worker。然後,新的 task 實例會與原始 task 同時運行,並且 Airflow UI 和日誌僅顯示錯誤訊息:'Task Instance Not Running' FAILED: Task is in the running state'。將 task_acks_late 設定為 True 將強制 Celery 等待 task 完成後再分配新的 task 實例。這有效地覆蓋了 visibility timeout。另請參閱:https://docs.celeryq.dev/en/stable/reference/celery.app.task.html#celery.app.task.Task.acks_late

類型

布林值

預設

True

環境變數

AIRFLOW__CELERY__TASK_ACKS_LATE

範例

True

task_publish_max_retries

當因 AirflowTaskTimeout 錯誤而失敗時,將 task 訊息發布到 broker 的最大重試次數,然後放棄並將 Task 標記為失敗。

類型

整數

預設

3

環境變數

AIRFLOW__CELERY__TASK_PUBLISH_MAX_RETRIES

task_track_started

當 worker 執行 Celery task 時,Celery task 將其狀態報告為 'started'。Airflow 使用此功能來追蹤正在運行的 task,並且如果重新啟動 Scheduler 或在 HA 模式下運行,它可以採用先前 SchedulerJob 啟動的孤立 task。

類型

布林值

預設

True

環境變數

AIRFLOW__CELERY__TASK_TRACK_STARTED

worker_autoscale

將用於根據負載動態調整 pool 大小的最大和最小 pool 進程數。通過使用 airflow celery worker 命令提供 max_concurrency,min_concurrency 來啟用自動縮放(始終保持最小進程數,但在必要時增加到最大值)。根據 worker box 上的資源和 task 的性質選擇這些數字。如果 autoscale 選項可用,則 worker_concurrency 將被忽略。 https://docs.celeryq.dev/en/latest/reference/celery.bin.worker.html#cmdoption-celery-worker-autoscale

類型

字串

預設

環境變數

AIRFLOW__CELERY__WORKER_AUTOSCALE

範例

16,12

worker_concurrency

使用 airflow celery worker 命令啟動 worker 時將使用的 concurrency。這定義了 worker 將處理的 task 實例數,因此請根據 worker box 上的資源和 task 的性質調整 worker 的大小

類型

字串

預設

16

環境變數

AIRFLOW__CELERY__WORKER_CONCURRENCY

worker_enable_remote_control

指定是否啟用 worker 的遠端控制。在某些情況下,當 broker 不支援遠端控制時,Celery 會建立大量的 .*reply-celery-pidbox queues。您可以通過將其設定為 false 來防止這種情況。但是,禁用此功能後,Flower 將無法運作。 https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/index.html#broker-overview

類型

布林值

預設

true

環境變數

AIRFLOW__CELERY__WORKER_ENABLE_REMOTE_CONTROL

worker_precheck

Worker 初始化檢查以驗證 Metadata 資料庫連線

類型

字串

預設

False

環境變數

AIRFLOW__CELERY__WORKER_PRECHECK

worker_prefetch_multiplier

用於增加 worker 預取的 task 數量,這可以提高效能。進程數乘以 worker_prefetch_multiplier 是 worker 預取的 task 數量。如果有多個 worker,並且一個 worker 預取了位於長時間運行的 task 後面的 task,而另一個 worker 有未使用的進程無法處理已聲明的阻塞 task,則大於 1 的值可能會導致 task 不必要地被阻塞。 https://docs.celeryq.dev/en/stable/userguide/optimizing.html#prefetch-limits

類型

整數

預設

1

環境變數

AIRFLOW__CELERY__WORKER_PREFETCH_MULTIPLIER

[celery_broker_transport_options]

此章節用於指定可以傳遞到底層 celery broker transport 的選項。請參閱:https://docs.celeryq.dev/en/latest/userguide/configuration.html#std:setting-broker_transport_options

sentinel_kwargs

sentinel_kwargs 參數允許將其他選項傳遞到 Sentinel 用戶端。在 Redis Sentinel 用作 broker 且 Redis server 受密碼保護的典型情況下,需要通過此參數傳遞密碼。雖然其類型為字串,但需要傳遞符合字典格式的字串。請參閱:https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/redis.html#configuration

類型

字串

預設

環境變數

AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__SENTINEL_KWARGS

AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__SENTINEL_KWARGS_CMD

AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__SENTINEL_KWARGS_SECRET

範例

{"password": "password_for_redis_server"}

visibility_timeout

visibility timeout 定義了等待 worker 確認 task 的秒數,然後訊息將重新傳遞給另一個 worker。請確保增加 visibility timeout 以匹配您計劃使用的最長 ETA 時間。visibility_timeout 僅在 Redis 和 SQS celery broker 中受支援。請參閱:https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/redis.html#visibility-timeout

類型

字串

預設

環境變數

AIRFLOW__CELERY_BROKER_TRANSPORT_OPTIONS__VISIBILITY_TIMEOUT

範例

21600

[celery_kubernetes_executor]

如果您在上面的 [core] 章節中使用 CeleryKubernetesExecutor,則此章節僅適用

kubernetes_queue

定義在使用 CeleryKubernetesExecutor 時何時將 task 發送到 KubernetesExecutor。當 task 的 queue 是 kubernetes_queue 的值(預設為 kubernetes)時,task 將通過 KubernetesExecutor 執行,否則通過 CeleryExecutor 執行

類型

字串

預設

kubernetes

環境變數

AIRFLOW__CELERY_KUBERNETES_EXECUTOR__KUBERNETES_QUEUE

這個條目有幫助嗎?