# #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. Таким образом, вы можете создать очередь для каждого поведения обработки задач и поместить задачу в правильную очередь.