У меня есть сайт, который развертывается в Google Cloud. Внутренний сервер имеет cronjob.
func (s *server) startCronJob() error {
err := s.cron.AddFunc("CRON_TZ=Asia/Saigon 0 9 * * *", s.cronJobFunc)
if err != nil {
return err
}
s.cron.Start()
return nil
}
func (s *FBWebHookServer) sendCronProblemToSubscribedUsers() {
log.Println("Start cron job")
// DO Smt
log.Println("Done cron job")
}
startCronJob
запускается только один раз после развертывания. Но работа cron выполнялась несколько раз.
A 2020-03-11T02:00:00.000507Z 2020/03/11 02:00:00 Start cron job
A 2020-03-11T02:00:00.000513Z 2020/03/11 02:00:00 Start cron job
A 2020-03-11T02:00:00.000584Z 2020/03/11 02:00:00 Start cron job
A 2020-03-11T02:00:00.000663Z 2020/03/11 02:00:00 Start cron job
Я думаю это из-за многократного развертывания. Когда я углубляюсь в эту проблему, количество выполненных заданий cron равно числу времени развертывания (развертывание приложения gcloud).
Есть ли какое-либо решение для решения этой проблемы?