首页 > 解决方案 > 如何优雅地停止 AWS Glue 作业?

问题描述

我正在使用 Glue v3.0 (Python 3.7)。

目标是优雅地停止 Glue PySpark 作业,以便它可以正确终止并在结束之前清理其自定义资源。

我尝试使用带有处理程序的经典 signal.signal() 方法来捕获停止/中止/终止信号。

但是,它似乎不适用于python 信号文档中指定的信号(处理程序永远不会被调用)。

知道如何使用信号方法优雅地停止工作吗?

标签: pythonamazon-web-servicessignalsaws-gluegraceful-shutdown

解决方案


你可以打电话sys.exit(any_status_code)。只需确保在 job.commit() 之前调用了 sys.exit,否则作业将失败。

只是出于好奇,您为什么要自己终止工作?在你打电话后job.commit(),工作应该结束。


编辑:

调用它应该有效:

job.commit()
os._exit()

推荐阅读