после сбоя может быть запущен и запущен только один сервер / экземпляр / задание
Ограничение параллелизма функции облака достаточно? Если это так, вы можете сделать это:
gcloud functions deploy FUNCTION_NAME --max-instances 1 FLAGS...
https://cloud.google.com/functions/docs/max-instances
Я также рекомендую взглянуть на Google Cloud Run, это серверная платформа docker , он может быть ограничен максимум 1 экземпляром, отвечающим на максимум 1 запрос одновременно. Для этого также потребуется Cloud Scheduler, который отправляет к нему регулярные HTTP-запросы.
Если обе службы настроены с максимальным параллелизмом 1, только один сервер / экземпляр / задание будет запущен, но после простоев задания могут быть запланировано, как только другой финал sh. Если это проблематично c, добавьте поле даты и времени lastRun в строку задания хранилища данных и не запускайте его, если оно слишком недавно, или отключите повторную попытку облачного планировщика, как сказано здесь:
Триггер HTTP облачных задач Google - Как отключить повтор