即使设置大于1小时,气流任务也会在一小时内超时

时间:2019-08-07 02:36:22

标签: celery airflow

当前,我正在使用气流和celery-executor + redis来运行dag,并且已在S3按键传感器中将execution_timeout设置为12小时,但每次重试都会在一小时内失败

我尝试在airflow.cfg中更新visibleibility_timeout = 64800,但问题仍然存在

file_sensor = CorrectedS3KeySensor(
    task_id = 'listen_for_file_drop', dag = dag,
    aws_conn_id = 'aws_default', 
    poke_interval = 15,
    timeout = 64800, # 18 hours
    bucket_name = EnvironmentConfigs.S3_SFTP_BUCKET_NAME,
    bucket_key = dag_config[ConfigurationConstants.FILE_S3_PATTERN],
    wildcard_match = True,
    execution_timeout = timedelta(hours=12)
)

据我所知,execution_timeout应该可以在总共运行四次后重用12小时(重试= 3)。但是问题在于每次重试,它将在一个小时内失败,并且只能持续4个小时以上

  

[2019-08-06 13:00:08,597] {{base_task_runner.py:101}}信息-作业9:子任务listen_for_file_drop [2019-08-06 13:00:08,595] {{timeout.py:41 }}错误-进程超时

     

[2019-08-06 13:00:08,612] {{models.py:1788}}错误-超时   追溯(最近一次通话):

     

_run_raw_task中的文件“ /usr/local/lib/python3.6/site-packages/airflow/models.py”,行1652       结果= task_copy.execute(context = context)

     

文件“ /usr/local/lib/python3.6/site-packages/airflow/sensors/base_sensor_operator.py”,执行中       而不是self.poke(context):

     

文件“ /usr/local/airflow/dags/ProcessingStage/sensors/sensors.py”,第91行,戳       time.sleep(30)

     

文件“ /usr/local/lib/python3.6/site-packages/airflow/utils/timeout.py”,第42行,在handle_timeout中       提高AirflowTaskTimeout(self.error_message)

     

airflow.exceptions.AirflowTaskTimeout:超时

1 个答案:

答案 0 :(得分:0)

我几天前就知道了。

由于我正在使用AWS来与celery executor一起部署气流,所以有一些不当的cloudwatch警报会不断扩大工作人员和Webserver / scheuler的规模:(

这些警报更新后,现在效果很好!