組態參考¶
此頁面包含 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
operation_timeout¶
在 send_task_to_executor
或 fetch_celery_task_state
操作逾時之前等待的秒數。
- 類型
浮點數
- 預設
1.0
- 環境變數
AIRFLOW__CELERY__OPERATION_TIMEOUT
pool¶
Celery Pool 實作。選項包括:prefork
(預設)、eventlet
、gevent
或 solo
。請參閱: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
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