Я вижу несоответствие в попытках Airflow или, может быть, я что-то упустил.По сути, у меня retries
установлено в 3 в аргументе по умолчанию;
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['airflow@example.com'],
'email_on_failure': True,
'email_on_retry': True,
'retries': 3
}
и установлено в 3
в PythonOperators
.
t1 = PythonOperator(
task_id='task_1',
python_callable=task_1_process,
retries=3,
dag=dag)
t2 = SparkSubmitOperator(
task_id="spark_submit_task",
conn_id="spark_default",
java_class="${JAVA_CLASS}",
application='/path/to/myjar-0.1.jar',
application_args=["${ARG1}"],
conf=SPARK_CONF,
dag=dag)
t3 = PythonOperator(
task_id='task_3',
python_callable=task_3_process,
retries=3,
dag=dag)
Что, как я предполагаю, означает, что задание будет повторено 3 раза, если первый запуск не удался, что означает, что я должен иметь:
Try 1 out of 4 [up_for_retry]
Try 2 out of 4 [up_for_retry]
Try 3 out of 4 [up_for_retry]
Try 4 out of 4 [failed]
Но в электронных письмах я получаю:
Airflow alert: <TaskInstance: MyJob.spark_submit_task 2018-12-06T00:00:00+00:00 [up_for_retry]>
Try 2 out of 4
Try 3 out of 4
Try 4 out of 4
Airflow alert: <TaskInstance: Airflow alert: <TaskInstance: MyJob.spark_submit_task 2018-12-06T00:00:00+00:00 [failed]>
Try 5 out of 4
, то есть 3 повторных попытки и еще 1 повторная попытка, после которой отмеченная ошибка не удалась.Так в чем же логика этих попыток или как это интерпретируется как Try 5 out of 4
вид звука, нелогичного?