Cron Job запускается несколько раз в облаке Google - PullRequest
1 голос
/ 11 марта 2020

У меня есть сайт, который развертывается в 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).

Есть ли какое-либо решение для решения этой проблемы?

1 Ответ

1 голос
/ 13 марта 2020

Я разобрался сам. GCP сохраняет все старые версии развертывания. Это не убивает старую версию при развертывании новой версии. https://cloud.google.com/sdk/gcloud/reference/app/deploy Чтобы решить эту проблему, мне нужно go перейти на страницу версии и удалить всю старую версию.

...