Spring Boot запускает запланированное задание дважды, но на локальном - PullRequest
0 голосов
/ 21 февраля 2019

Моя проблема в том, что запланированный метод "подписка" вызывается дважды.

Это шаблон, который я использую.

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

Когда я использую $mvn spring-boot:run отлично работает на локальном

Но я использую $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

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Проверьте, есть ли два экземпляра вашего сервера?это задание cron будет уникальным только для одного сервера.

0 голосов
/ 21 февраля 2019

Я проверяю свой GCP.

У меня есть два экземпляра в одной и той же версии.

Это связано?

...