گاهی پیش میآید که یک DAG بهاشتباه اجرا شود (مثلاً به دلیل Backfill نادرست یا خطای تنظیمات) و تعداد زیادی تسک زمانبندی شود. در این شرایط باید بتوانیم DAG و اجرایهای آن را متوقف، پاکسازی و در صورت نیاز حذف کنیم.
در این جلسه برای توضیح این مفهوم، یک Backfill اجرا کردیم که تسکها دادهها را در مسیر پیشفرض /tmp ذخیره میکردند، در حالی که مسیر صحیح /data بود. برای رفع این خطا، DAG و تمامی اجرایهای آن را به کمک خط فرمان مدیریت کردیم.
برای اجرای دستورات CLI ایرفلو چند روش وجود دارد:
docker exec -it <container_id_or_name> bash
airflow-cli:
docker-compose یک سرویس به نام airflow-cli وجود دارد.debug قرار دارد و میتوان آن را هنگام بالا آوردن کلاستر فعال کرد: docker compose --profile debug up airflow-clidocker compose up airflow-cliبعد از ورود به خط فرمان، میتوانیم دستورات زیر را اجرا کنیم.
airflow dags list
airflow dags pause <dag_id>
بررسی وضعیت:
airflow dags details <dag_id> | grep is_paused
airflow dags list-runs <dag_id>
نمونه خروجی:
dag_id run_id state execution_date
----------------- --------------------- ------- -------------------
Stock-Exchange-V1 backfill__2025-09-08 running 2025-09-08T13:00:00
Stock-Exchange-V1 manual__2025-09-10T12 failed 2025-09-10T12:00:00
airflow tasks clear -d <dag_id> --yes
airflow dags delete <dag_id>
⚠️ توجه: این دستور همهی اجرایها و تاریخچه DAG را حذف میکند.
rm /opt/airflow/dags/<dag_file>.py
airflow dags list
airflow dags list-runs -d <dag_id>
✅ به این ترتیب، با استفاده از CLI ایرفلو میتوانیم یک DAG مشکلدار را متوقف کنیم، تسکها و اجرایهایش را پاکسازی کنیم و در صورت نیاز کل رکوردهایش را از متادیتابیس حذف کنیم.
برای آشنایی با سایر دستورات خط فرمان ایرفلو به راهنمای رسمی آن مراجعه کنید.
https://airflow.apache.org/docs/apache-airflow/stable/cli-and-env-variables-ref.html