Cron Job 在谷歌云上运行多次

我有一个部署在 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 app 部署)的次数。


有什么办法可以解决这个问题吗?


繁星点点滴滴
浏览 109回答 1
1回答

翻翻过去那场雪

GCP 保留每个旧版本的部署。当我部署新版本时,它不会杀死旧版本。 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go