使用 Airflow 建置資料管線
Volker Janz
Senior Developer Advocate at Astronomer

Poke 模式(預設)
from airflow.providers.standard.sensors.filesystem \
import FileSensor
wait = FileSensor(
task_id="wait",
filepath="/data/report.csv",
mode="poke",
poke_interval=30,
)
Reschedule 模式
from airflow.providers.standard.sensors.filesystem \
import FileSensor
wait = FileSensor(
task_id="wait",
filepath="/data/report.csv",
mode="reschedule",
poke_interval=300,
)

from airflow.providers.standard.sensors.filesystem import FileSensor wait_for_data = FileSensor( task_id="wait_for_data", filepath="/data/incoming/report.csv",deferrable=True,poke_interval=30, timeout=3600, )
poke_interval 與 timeout 仍然生效| 模式 | 最適用 | worker 插槽 |
|---|---|---|
| poke | 短等待(< 1 分鐘) | 全程佔用 |
| reschedule | 中等等待,無 Triggerer | 檢查間釋放 |
| deferrable | 長等待,感測器多 | 從不佔用 |
AIRFLOW__OPERATORS__DEFAULT_DEFERRABLE=True
deferrable=False 覆寫使用 Airflow 建置資料管線