Правка ошибок
This commit is contained in:
@@ -6,6 +6,7 @@ from datetime import datetime, timedelta
|
|||||||
from airflow import DAG
|
from airflow import DAG
|
||||||
from airflow.operators.python import PythonOperator
|
from airflow.operators.python import PythonOperator
|
||||||
from airflow.operators.dummy import DummyOperator
|
from airflow.operators.dummy import DummyOperator
|
||||||
|
from airflow.models.baseoperator import chain
|
||||||
import random
|
import random
|
||||||
|
|
||||||
# Определение DAG
|
# Определение DAG
|
||||||
@@ -35,7 +36,7 @@ def unreliable_task():
|
|||||||
if random.random() < 0.3: # 30% вероятность ошибки
|
if random.random() < 0.3: # 30% вероятность ошибки
|
||||||
print("Ошибка: задача не выполнена успешно!")
|
print("Ошибка: задача не выполнена успешно!")
|
||||||
raise Exception("Случайная ошибка в задаче")
|
raise Exception("Случайная ошибка в задаче")
|
||||||
|
|
||||||
print("Задача выполнена успешно!")
|
print("Задача выполнена успешно!")
|
||||||
return "Задача выполнена"
|
return "Задача выполнена"
|
||||||
|
|
||||||
@@ -55,12 +56,12 @@ def retry_task():
|
|||||||
# Имитируем задачу, которая может завершиться с ошибкой, но со временем исправляется
|
# Имитируем задачу, которая может завершиться с ошибкой, но со временем исправляется
|
||||||
import time
|
import time
|
||||||
time.sleep(2) # Имитация работы
|
time.sleep(2) # Имитация работы
|
||||||
|
|
||||||
# С вероятностью 50% задача завершится с ошибкой
|
# С вероятностью 50% задача завершится с ошибкой
|
||||||
if random.random() < 0.5:
|
if random.random() < 0.5:
|
||||||
print("Ошибка в retry_task!")
|
print("Ошибка в retry_task!")
|
||||||
raise Exception("Ошибка в задаче с повторными попытками")
|
raise Exception("Ошибка в задаче с повторными попытками")
|
||||||
|
|
||||||
print("retry_task выполнена успешно!")
|
print("retry_task выполнена успешно!")
|
||||||
return "retry_task завершена"
|
return "retry_task завершена"
|
||||||
|
|
||||||
@@ -102,6 +103,6 @@ end_task = DummyOperator(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Установка зависимостей
|
# Установка зависимостей
|
||||||
start_task >> [unreliable_task, retry_task]
|
# Используем chain, чтобы наглядно показать ученикам построение ветвящихся зависимостей без ручного перечисления операторов.
|
||||||
[unreliable_task, retry_task] >> [success_handler_task, failure_handler_task]
|
chain(start_task, [unreliable_task, retry_task], [success_handler_task, failure_handler_task], end_task)
|
||||||
[success_handler_task, failure_handler_task] >> end_task
|
|
||||||
|
|||||||
Reference in New Issue
Block a user