默认情况下,每个任务最长运行 10 分钟:您可以将其更改为更短或更长(最长 24 小时)的时间。
您可以按照本页中的说明设置任务超时。作业执行没有显式超时限制:所有任务都完成后,作业执行结束。
在重试时,超时设置适用于任务的每次尝试。如果任务尝试未能在此时间段内完成,它将会停止。
单位指定持续时间;例如,10m5s
为 10 分 5 秒。如果您未指定单位,则假定单位为秒。例如,值 10
为 10 秒。
观察和处理维护事件
作业可能会定期执行维护事件。在维护事件期间,任何正在执行的任务都会从当前机器迁移到其他机器。此迁移过程会保留任务的整个状态。但是,迁移任务时,系统会暂停处理一小段时间。
维护事件是透明的;您无需对容器进行任何更改即可处理维护事件。请注意,每次任务开始和完成迁移时,Cloud Run 都会输出一条日志消息。
但是,如果要以特定方式监控或处理维护事件,您可以捕获 SIGTSTP
信号,此信号会在任务迁移之前 10 秒发送。迁移后,任务会在任务重启后立即收到 SIGCONT
信号。
下面的 Go 示例函数会捕获这些信号并输出日志条目:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
设置任务超时时间
如需为 Cloud Run 作业指定任务超时,请执行以下操作:
控制台
在 Google Cloud 控制台中,进入 Cloud Run 作业页面:
如果要配置新作业,请点击作业标签页,然后根据需要填写初始作业设置页面。如果要配置现有作业,请点击作业,然后点击修改。
点击容器、变量和 Secret、连接、安全性以展开作业属性页面。
点击常规标签页。
- 为当前作业中的作业任务指定时长上限,您需要同时指定时间量和单位:例如,
10m5s
表示 10 分钟 5 秒。
- 为当前作业中的作业任务指定时长上限,您需要同时指定时间量和单位:例如,
点击创建或更新。
命令行
对于要创建的作业:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
替换
- 将 JOB_NAME 替换为作业的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。 - 将 TIMEOUT 替换为作业任务的最长时长,并指定时间和单位:例如
10m5s
为 10 分 5 秒。
对于要更新的作业:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
使用 gcloud run jobs describe --format export
命令下载并查看现有作业配置,该命令会生成清理后的 YAML 格式的结果。然后,修改下述字段,并使用 gcloud run jobs replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
要查看和下载配置,请运行以下命令:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新
timeoutSeconds:
特性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
将 TIMEOUT 替换为作业任务的最长时长,并指定时间和单位:例如
10m5s
为 10 分 5 秒。您还可以指定更多配置,例如环境变量或内存限制。
更新现有作业配置:
gcloud run jobs replace job.yaml
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需为 Cloud Run 作业指定任务超时,请使用 google_cloud_run_v2_job
资源并将以下代码段应用于 main.tf
文件:
查看任务超时设置
如需查看 Cloud Run 作业的当前任务超时设置,请执行以下操作:
控制台
在 Google Cloud 控制台中,进入 Cloud Run 作业页面:
点击相关作业以打开作业详情页面。
点击配置标签页。
在配置详细信息中找到任务超时设置。
命令行
使用以下命令:
gcloud run jobs describe JOB_NAME
在返回的配置中找到任务超时设置。