如何编辑 Google Cloud 任务的默认超时(使用 http 目标,而不是应用引擎)?

Posted

技术标签:

【中文标题】如何编辑 Google Cloud 任务的默认超时(使用 http 目标,而不是应用引擎)?【英文标题】:How to edit Google Cloud task's default timeout (with http target, not app engine)? 【发布时间】:2019-10-27 08:05:49 【问题描述】:

我正在使用 this package 将 Google Cloud 任务添加到我的项目中,并且效果很好。问题是我不知道如何增加http目标请求超时?

【问题讨论】:

【参考方案1】:

如果您使用 nodejs 创建任务,请使用 dispatchDeadline。 来源:https://googleapis.dev/nodejs/tasks/latest/google.cloud.tasks.v2beta3.Task.html

示例实现:

//npm install --save @google-cloud/tasks
const client = new CloudTasksClient();
const project = 'your-project-name';
const queue = 'your-queue-name';
const location = 'us-central1';
const parent = client.queuePath(project, location, queue);
const serviceAccountEmail = 'user@projectname_or_whatever.iam.gserviceaccount.com';
const url = 'http://destination_url'


const payload = JSON.stringify( "user": "Manuel Solalinde", 'mode': 'secret mode' )
const body = Buffer.from(payload).toString('base64')
// task creation documentation: https://googleapis.dev/nodejs/tasks/latest/google.cloud.tasks.v2beta3.Task.html
const task = 
    httpRequest: 
        httpMethod: 'POST',
        url: url,
        dispatchDeadline: 30 * 60, //30 minutes
        body: body,
        headers:  "Content-type": "application/json" ,
        oidcToken: 
            serviceAccountEmail,
        ,
    ,
;

// Send create task request.
console.log('Sending task:');
const [response] = await client.createTask( parent, task );
console.log(`Created task $response.name`);

【讨论】:

当然,我正在更新答案【参考方案2】:

Tasks 对象的dispatch_deadline 属性应该允许您延长请求超时。 HTTP 目标的默认值为 10 分钟。

Cloud Tasks Client Library Documentation for php

【讨论】:

【参考方案3】:

由于缺乏声誉,我无法发表评论,但第一个解决方案是不正确的。 dispatch_deadline 是任务请求的一部分,而不是 httpRequest。它应该移出该对象的一层。

task: 
    dispatch_deadline: 200
    httpRequest: 

    

但是,我尝试实现这一点,不幸的是,当您添加此标志时,请求只是挂起。我的请求从不涉及创建任务。我认为这是一个损坏的功能。

【讨论】:

以上是关于如何编辑 Google Cloud 任务的默认超时(使用 http 目标,而不是应用引擎)?的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Build 超时

如何在 Google Cloud Platform 中编辑 Kubernetes 集群的描述字段?

Spring Cloud 源码解读之 如何配置好OpenFeign的各种超时时间!

Cloud Scheduler 不尊重我的超时设置(编辑:与 CloudRun 无关)

如何使用 Google Cloud PubSub 和 Run 处理资源密集型长时间运行的任务?

当内容长度介于 4013-8092 个字符之间时,Google Cloud Run 网站会超时。到底是怎么回事?