Bil*_*nno 3 google-cloud-platform google-cloud-scheduler
我创建了一个 GCP Cloud Scheduler 作业,每 15 分钟运行一次。它应该从我的 Node js 应用程序调用 API。在控制台中,作业定义如下所示:
Description: A job
Frequency: */15 * * * *
Timezone: Central Standard Time
Target: HTTP
URL: https://<company url>/api/email-reminder/
HTTP method: GET
Auth header: Add OIDC token
Service account: xxxxxxxxxxx-compute@developr.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)
当它运行时,它会在日志中返回以下内容:
httpRequest: {
}
insertId: "15wxxxxxxge1lv"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
jobName: "projects/<project name>/locations/us-central1/jobs/xxxxxxxxx-scheduler-emailreminders-1"
status: "UNKNOWN"
targetType: "HTTP"
url: "https://<company url>/api/email-reminder/"
}
logName: "projects/<project name>/logs/cloudscheduler.googleapis.com%2Fexecutions"
receiveTimestamp: "2019-11-14T04:45:50.280446452Z"
resource: {
labels: {…}
type: "cloud_scheduler_job"
}
severity: "ERROR"
timestamp: "2019-11-14T04:45:50.280446452Z"
}
Run Code Online (Sandbox Code Playgroud)
如何找到有关错误的更多信息?
小智 6
超时调度程序作业进程的默认值是 180 秒,您可以通过 gcloud 命令更改
gcloud scheduler jobs update http my-super-job --attempt-deadline 540s
Run Code Online (Sandbox Code Playgroud)
您也可以使用此命令查看作业的完整信息...
gcloud scheduler jobs list
gcloud scheduler jobs describe my-super-job
Run Code Online (Sandbox Code Playgroud)
我最近在使用 Cloud Scheduler for HTTPS 目标时遇到了类似的问题。每隔一段时间,调度程序就会失败,我得到的只是像你这样的日志消息。
在日志查看器中查看,日志的关键部分在日志头中:
"status":"RESOURCE_EXHAUSTED",
"@type":"type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
Run Code Online (Sandbox Code Playgroud)
并在日志数据中:
httpRequest: {
status: 429
}
jsonPayload: {
@type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
jobName: "projects/joburlhere"
status: "RESOURCE_EXHAUSTED"
targetType: "HTTP"
url: "https://urlgoeshere"
}
severity: "ERROR"
Run Code Online (Sandbox Code Playgroud)
“资源耗尽”是429错误代码的描述。
这里有一段代码的描述:
https://cloud.google.com/apis/design/errors
429 RESOURCE_EXHAUSTED 超出资源配额或达到速率限制。客户端应查找 google.rpc.QuotaFailure 错误详细信息以获取更多信息。
鉴于我每小时运行一次此作业,并且接收器是一个非常适度的云功能,我不会做任何导致资源耗尽的事情。所以我认为这是谷歌云基础设施反复出现的暂时性问题。我猜测云函数对于该特定请求不可用,并且因为我使用默认设置设置了云函数,所以调度程序没有重试。
此外,可以配置调度程序作业以在失败时重试。此功能未显示在 Web 控制台中,但您可以使用gcloud
命令控制它。
默认设置是不重试。
看--max-retry-attempts
旗帜。
https://cloud.google.com/sdk/gcloud/reference/scheduler/jobs/update/http
pubsub 作业也有类似的控件
https://cloud.google.com/sdk/gcloud/reference/scheduler/jobs/update/pubsub
归档时间: |
|
查看次数: |
3649 次 |
最近记录: |