«Google Cloud Tasks», выполнение создания задачи - PullRequest
0 голосов
/ 31 октября 2019

У меня есть «функция облака Google» в регионе europe-west1 (Бельгия), которая создает задачи в «очереди задач облака Google», расположенной в europe-west3 (Германия). Это похоже на туториал: https://cloud.google.com/tasks/docs/tutorial-gcf

Облачная функция занимает около 1-2 секунд, чтобы создать задачу. Это не оптимизированное решение, потому что CF так долго не работает.

  1. Как оптимизировать время создания задачи?

  2. Будет ли перемещение функции Cloud и очереди задач в один регион значительно улучшить скорость создания задачи?

  3. Можно ли просто остановить функцию облака при отправке? "создание очереди задач "запрос и не ждите ответа? Конечно, это плохая практика, и я хотел бы избежать этого.

import { v2beta3 } from '@google-cloud/tasks';

// cloud function
(req, res) => {
  const client = new v2beta3.CloudTasksClient();
  ...
  // send "create task" request
  client.createTask(...);

  setTimeout(() => {
    // Stop cloud function without processing of queue response
    res.sendStatus(200);
  }, 100);
}

1 Ответ

0 голосов
/ 31 октября 2019
  1. API займет столько времени, сколько потребуется. Я не верю, что есть какой-то способ ускорить этот модуль.

  2. Звучит так, как будто вы можете поэкспериментировать.

  3. Нет,Облачная функция не может завершиться, пока вся ее асинхронная работа также не будет завершена, в противном случае Облачная функция будет ограничивать ресурсы в этой функции, и эта работа может не завершиться. Вы должны использовать обещания, чтобы определить, когда асинхронная работа завершится, и отправлять ответ только позже.

...