Облачный планировщик запускает работу на основе расписаний. Это в значительной степени его цель в жизни. Когда наступает время запуска, он обычно использует Pub / Sub или HTTP для запуска своей работы. Вы не рисовали никаких деталей в своей истории, но я собираюсь предположить, что во время T1, работа J1 срабатывает. В момент времени T2, работа J2 срабатывает. Вы не хотите, чтобы задание J2 срабатывало, если задание J1 не удалось. T2 всегда начинается достаточно далеко после окончания T1, чтобы не было гонки.
Первый проход при решении не запускать J2 в случае сбоя J1 - это сделать J1 записать свое состояние завершения в хранилище данных, такое как DataStore. или FireStore. Когда J2 запускается, он может проверить результаты последнего J1 и определить, следует ли продолжать.
Если вы не хотите включать такую логику в свой реальный код, вы можете создатьинтерфейсная часть логики, которая запускается заданиями, выполняющими проверку защиты перед передачей запроса на запуск в вашу реальную логику.