簡體   English   中英

Spring Boot兩次運行計划的作業,但是在本地運行良好

[英]Spring Boot runs scheduled job twice, But it works fine in the local

我的問題是計划方法“訂閱”被調用兩次。

這是我使用的模板。

https://github.com/JetBrains/gcp-samples/tree/master/google-appengine-sample

當我使用$mvn spring-boot:run在本地工作正常

但是我使用$mvn appengine:deploy計划的$mvn appengine:deploy被調用了兩次。

我的代碼:

@Component
class ScheduledTasks {
    @Scheduled(cron = "0 0 * * * *")
    fun subscription() {
            var hasBeenInitialized = false
            val firebaseApps = FirebaseApp.getApps()
            for (app in firebaseApps) {
                if (app.name == FirebaseApp.DEFAULT_APP_NAME) {
                    hasBeenInitialized = true
                }
            }
            if(!hasBeenInitialized) {
                InitializeGCP()
            }

            var db = FirestoreClient.getFirestore()
            val query = db.collection("subscription").get()
            val querySnapshot = query.get()
            val documents = querySnapshot.documents

            for (document in documents) {
                if (localTime.equals(document.getString("time"))) {
                    ...post to my ChatBot Api...
                }
            }
        }
    }
}

我的app.yaml:

runtime: java
env: flex
runtime_config:
  jdk: openjdk8

我檢查我的GCP。

我有兩個版本相同的實例。

有關系嗎

檢查您的服務器是否有兩個實例? 此Cron作業僅對一台服務器是唯一的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM