Функция Google Cloud Cold Start с элементами пользовательского интерфейса - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время я делаю приложение для Интернета и iOS, и на веб-стороне у меня есть куча логики в Javascript, которая изменяет базу данных Firestore, которую я имею.Я подумал, что переместил бы эту логику в несколько облачных функций, чтобы я мог вызывать их как из своего веб-клиента, так и из iOS-клиента, и мне нужно было бы написать логику только один раз, в nodeJS, вместо того, чтобы писать ту же логику один раз для веб-приложения в Javascript и один раз.для приложения iOS в Swift.Я получил облачные функции для работы и обновления базы данных, но проблема в холодном запуске.На моей веб-странице есть элементы пользовательского интерфейса, которые следят за обновлениями в моей базе данных Firestore и меняют их всякий раз, когда происходят изменения.Прежде чем эти изменения были бы мгновенными, но теперь с облачными функциями я должен дождаться завершения холодного запуска, прежде чем обновится база данных и, следовательно, пользовательский интерфейс.Это приводит к тому, что пользовательский интерфейс не реагирует на входные данные немедленно.

Я хотел перейти к облачным функциям, поэтому мне нужно было бы написать логику только один раз, но разве это не тот случай использования?(Обновление элементов пользовательского интерфейса в режиме реального времени).Стоит ли пытаться настроить работу cron, чтобы пинговать мои функции, чтобы они всегда были «живы»?Как я могу увеличить функции "живого времени" после холодного запуска, так как мои, кажется, умирают довольно быстро?Какие-нибудь общие советы или рекомендации по решению этой проблемы?

Спасибо, ребята.

1 Ответ

0 голосов
/ 22 февраля 2019

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

Единственное, что вы можете эффективно сделать, - это минимизировать объем работы в глобальной области действия для ваших функций и перемещать эту работу внутри каждой функции по мере необходимости.Это создает ситуацию, когда каждая функция имеет свое собственное поведение холодного запуска, которое не разделяется или не дублируется всеми вашими функциями.

...