بخش اول : مفاهیم پایه و شروع کار با ایرفلو
بخش دوم : مهارت‌های حرفه‌ای در طراحی جریان‌های کار
بخش سوم : طراحی و مدیریت جریان‌های کار پیچیده
بخش چهارم: کارگاه عملی و آشنایی با جایگزین‌های ایرفلو

بررسی نحوه مدیریت خطا در اجرای یک DAG و حذف و پاک‌کردن تسک‌ها از طریق خط فرمان

گاهی پیش می‌آید که یک DAG به‌اشتباه اجرا شود (مثلاً به دلیل Backfill نادرست یا خطای تنظیمات) و تعداد زیادی تسک زمان‌بندی شود. در این شرایط باید بتوانیم DAG و اجرای‌های آن را متوقف، پاک‌سازی و در صورت نیاز حذف کنیم.

در این جلسه برای توضیح این مفهوم، یک Backfill اجرا کردیم که تسک‌ها داده‌ها را در مسیر پیش‌فرض /tmp ذخیره می‌کردند، در حالی که مسیر صحیح /data بود. برای رفع این خطا، DAG و تمامی اجرای‌های آن را به کمک خط فرمان مدیریت کردیم.


ورود به خط فرمان Airflow

برای اجرای دستورات CLI ایرفلو چند روش وجود دارد:

  1. ورود به یکی از کانتینرهای ایرفلو (مانند scheduler یا worker):
  2. docker exec -it <container_id_or_name> bash
    • یا از طریق Docker Desktop، روی کانتینر موردنظر کلیک کرده و در تب Exec وارد خط فرمان شوید.
  3. روش حرفه‌ای با استفاده از سرویس airflow-cli:
    • در فایل docker-compose یک سرویس به نام airflow-cli وجود دارد.
    • این سرویس معمولاً در پروفایل debug قرار دارد و می‌توان آن را هنگام بالا آوردن کلاستر فعال کرد: docker compose --profile debug up airflow-cli
    • یا به‌طور مستقل تنها همین سرویس را بالا آورد: docker compose up airflow-cli

بعد از ورود به خط فرمان، می‌توانیم دستورات زیر را اجرا کنیم.


۱. لیست کردن DAGها

airflow dags list

۲. متوقف کردن DAG

airflow dags pause <dag_id>

بررسی وضعیت:

airflow dags details <dag_id> | grep is_paused

۳. مشاهده اجرای‌های DAG (از جمله Backfillها)

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

۴. پاک‌سازی (Clear) تسک‌ها

airflow tasks clear -d <dag_id> --yes

۵. حذف رکوردهای DAG از متادیتابیس

airflow dags delete <dag_id>

⚠️ توجه: این دستور همه‌ی اجرای‌ها و تاریخچه DAG را حذف می‌کند.


۶. حذف فایل 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

فروشگاه
جستجو
دوره ها

لطفا کلمات کلیدی را وارد کنید