在访问云存储时,DAG中的一个任务有时挂起。这里的代码似乎停留在download
函数上:
hook = GoogleCloudStorageHook(google_cloud_storage_conn_id='google_cloud_default') for input_file in hook.list(bucket, prefix=folder): hook.download(bucket=bucket, object=input_file)
在我的测试中,该文件夹包含一个20 my json文件。
任务通常需要20-30秒,但在某些情况下,它将运行5分钟,然后将其状态更新为SCHEDULED
并停留在那里(等待时间超过6个小时)。我怀疑这5分钟是由于配置scheduler_zombie_task_threshold 300
,但不确定。
如果我在Web上手动清除该任务,则该任务将快速排队并再次正确运行。我正在通过设置一个execution_timeout
来解决这个问题,当任务超过10分钟时,它将正确地将任务更新为FAILED
或UP_FOR_RETRY
状态;但是我想修复基本问题,以避免依赖固定的超时阈值,有什么建议吗?
发布于 2018-07-17 08:16:14
在Composer讨论组上有一个关于这个问题的讨论:https://groups.google.com/d/msg/cloud-composer-discuss/alnKzMjEj8Q/0lbp3bTlAgAJ。这是一个问题,芹菜执行器时,气流工人死亡。
虽然Composer正在进行修复,但是如果希望在当前版本中减少这种情况,您可以考虑减少并行性气流配置,或者使用更大的机器类型创建一个新的环境。
https://stackoverflow.com/questions/51078661
复制