我正在使用this package将Google Cloud任务添加到我的项目中,并且效果很好。问题是我不知道如何增加http目标请求超时?
答案 0 :(得分:1)
Tasks对象的dispatch_deadline
属性应允许您延长请求超时。 HTTP目标的默认值为10分钟。
答案 1 :(得分: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 :(得分:0)
由于缺乏声誉,我无法发表评论,但第一个解决方案是不正确的。 dispatch_deadline 是任务请求的一部分,而不是 httpRequest。它应该移出该对象的一层。
task: {
dispatch_deadline: 200
httpRequest: {
}
}
然而,我试图实现这一点,不幸的是,当你添加这个标志时,请求就会挂起。我的请求从未通过创建任务。我认为这是一个损坏的功能。