Go语言 以编程方式取消pyspark dataproc批处理作业

dauxcl2d  于 2023-06-19  发布在  Go
关注(0)|答案(1)|浏览(157)

使用golang,我有几个dataproc批处理作业正在运行,我可以通过它们的Uuid来访问它们,方法是创建一个像这样的客户端。

BatchClient, err := dataproc.NewBatchControllerClient(context, ...options)

如果我想删除一个批处理作业,我可以像这样使用GoogleCloud的Golang客户端库(请求体包含批处理的UUID)

_, err := batchClient.DeleteBatch(context, request, ...options)

但是,似乎没有任何方法可以取消已经以编程方式运行的批处理。如果我试图删除一个已经在运行的批处理,我理所当然地得到一个错误FAILED_PRECONDITION
现在,我知道Google cloud的SDK cli有一个简单的方法来取消这样的作业:

gcloud dataproc batches cancel (BATCH : --region=REGION) [GCLOUD_WIDE_FLAG …]

不幸的是,这种方法不太适合我的应用程序。

iklwldmw

iklwldmw1#

在删除批处理资源之前,您需要确保它处于终端状态(失败或成功)。
为了实现这一点,您需要通过相关的长时间运行操作来取消它:https://cloud.google.com/dataproc-serverless/docs/reference/rest/v1/projects.locations.operations/cancel

相关问题