Как установить MAX_ATTEMPTS из кода в задачу Google Cloud?

# #javascript #typescript #google-app-engine #google-cloud-platform #google-tasks

Вопрос:

Как задать MAX_ATTEMPT задачи в очереди Google cloud в коде?

Когда я создаю новую задачу, я хочу установить, сколько должно быть повторений данной задачи, могу ли я сделать это из приведенного ниже кода?

У меня есть облачная очередь Google, как здесь:

 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 , но я хочу установить это динамически для задач

спасибо за любую помощь!

Ответ №1:

К сожалению, ответ отрицательный. Вы не можете задавать параметры повторных попыток для отдельных задач. Я заявляю об этом, просматривая этот документ:

ОСТАЛЬНЫЕ ресурсы: проекты.местоположения.очереди

который является API REST для создания очередей задач. Там, в разделе документации retryConfig , мы читаем:

Для задач, созданных с использованием облачных задач: параметры повтора на уровне очереди применяются ко всем задачам в очереди, созданным с использованием облачных задач. Параметры повторной попытки не могут быть установлены для отдельных задач.

Комментарии:

1. Таким образом, вы можете создать очередь для каждого поведения обработки задач и поместить задачу в правильную очередь.