You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Go语言以编程方式取消Google Cloud Dataproc运行中的批处理作业?

取消Google Cloud Dataproc运行中批处理作业的Go实现方案

你遇到的FAILED_PRECONDITION错误,是因为误用了DeleteBatch方法——该方法仅适用于删除已完成的作业,无法终止运行中的任务。要取消正在运行的批处理作业,需使用Go客户端库提供的CancelBatch方法。

实现代码示例

import (
    "context"
    "fmt"
    dataprocpb "cloud.google.com/go/dataproc/apiv1/dataprocpb"
)

// CancelRunningBatch 取消指定的运行中Dataproc批处理作业
func CancelRunningBatch(client *dataprocpb.BatchControllerClient, projectID, region, batchID string) error {
    ctx := context.Background()
    // 构造请求,需传入作业的完整资源名称
    req := &dataprocpb.CancelBatchRequest{
        Name: fmt.Sprintf("projects/%s/regions/%s/batches/%s", projectID, region, batchID),
    }
    // 调用CancelBatch方法执行取消操作
    _, err := client.CancelBatch(ctx, req)
    return err
}

关键说明

  • CancelBatch是专门用于终止运行中作业的API,执行后作业状态会转为CANCELLED
  • 若作业已处于完成(成功/失败)状态,调用CancelBatch会返回错误,此时可使用DeleteBatch清理作业资源
  • 无需依赖gcloud CLI,完全通过Go客户端实现编程式取消,适配你的应用场景

内容的提问来源于stack exchange,提问作者David Gamboa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:27:21