【问题标题】:How to set MAX_ATTEMPTS from code to Google Cloud Task?如何将代码中的 MAX_ATTEMPTS 设置为 Google Cloud Task?
【发布时间】:2021-12-05 13:23:33
【问题描述】:

如何在代码中设置谷歌云队列中任务的MAX_ATTEMPT

当我创建新任务时,我想设置给定任务的重复次数,我可以从下面的代码中完成吗?

我有像这里这样的谷歌云队列:

const {CloudTasksClient} = require('@google-cloud/tasks');
const client = new CloudTasksClient();

async function createHttpTask() {
  const project = 'my-project-id';
  const queue = 'my-queue';
  const location = 'us-central1';
  const url = 'https://example.com/taskhandler';
  const payload = 'Hello, World!';
  const inSeconds = 180;

  const parent = client.queuePath(project, location, queue);

  const task = {
    httpRequest: {
      httpMethod: 'POST',
      url,
    },
  };

  if (payload) {
    task.httpRequest.body = Buffer.from(payload).toString('base64');
  }

  console.log('Sending task:');
  console.log(task);
  const request = {parent: parent, task: task};
  await client.createTask(request);
}
createHttpTask();

从 Google Cloud 文档中,我看到我可以从控制台为整个队列 - https://cloud.google.com/tasks/docs/configuring-queues#retry 执行此操作,但我想为任务动态设置它

感谢您的帮助!

【问题讨论】:

    标签: javascript typescript google-app-engine google-cloud-platform google-tasks


    【解决方案1】:

    很遗憾,答案是否定的。您不能对单个任务设置重试参数。我通过查看此文档提出此声明:

    REST Resource: projects.locations.queues

    这是用于创建任务队列的 REST API。在那里,在retryConfig 的文档下,我们读到:

    对于使用 Cloud Tasks 创建的任务:队列级重试设置适用于队列中使用 Cloud Tasks 创建的所有任务。无法为单个任务设置重试设置。

    【讨论】:

    • 因此您可以为每个任务处理行为创建一个队列,并将任务推送到正确的队列中。
    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 2015-07-22
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多