当前,我正在使用气流和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:超时
答案 0 :(得分:0)
我几天前就知道了。
由于我正在使用AWS
来与celery executor一起部署气流,所以有一些不当的cloudwatch警报会不断扩大工作人员和Webserver / scheuler的规模:(
这些警报更新后,现在效果很好!