python - 如何优雅地停止 AWS Glue 作业?
问题描述
我正在使用 Glue v3.0 (Python 3.7)。
目标是优雅地停止 Glue PySpark 作业,以便它可以正确终止并在结束之前清理其自定义资源。
我尝试使用带有处理程序的经典 signal.signal() 方法来捕获停止/中止/终止信号。
但是,它似乎不适用于python 信号文档中指定的信号(处理程序永远不会被调用)。
知道如何使用信号方法优雅地停止工作吗?
解决方案
你可以打电话sys.exit(any_status_code)
。只需确保在 job.commit() 之前调用了 sys.exit,否则作业将失败。
只是出于好奇,您为什么要自己终止工作?在你打电话后job.commit()
,工作应该结束。
编辑:
调用它应该有效:
job.commit()
os._exit()