Zeitzone für Spring @Scheduled angeben?

Wie kann ich die Zeitzone für eine Spring-basierte Zeitzone konfigurieren?@Geplant Cron-Job?

Hintergrund:

Ich habe einen Job, der einmal am Tag ausgeführt wird, z. B. um 14 Uhr mit Spring's@Scheduled Anmerkung:

@Scheduled(cron = "0 0 14 * * *")
public void execute() {
    // do scheduled job
}

Das Problem ist, dass 2 PM zwischen verschiedenen Servern unterschiedlich sind, da Spring auf verwendetTimeZone.getDefault() im Inneren. Darüber hinaus ist dieJavaDoc vonTimeZone.getDefault()besagt, dass:

Ruft die Standardzeitzone für diesen Host ab. Die Quelle der Standard-Zeitzone kann je nach Implementierung variieren.

Mit anderen Worten wird die Zeitzone nicht bestimmt. Dies kann von der JVM-Implementierung, der Konfiguration der Server-Zeitzone, dem Serverstandort und / oder anderen unbekannten Faktoren abhängen. Folglich wird der Cron-Job zu unterschiedlichen Zeiten auf verschiedenen Servern ausgelöst, es sei denn, Sie können explizit festlegen, welche Zeitzone verwendet werden soll.

Ich benutze Spring 3.2.2.

Aktualisieren

Ab Frühjahr 4, Ausgabe Spring JiraSPR-10456 wurde gelöst. Folglich ist die@Scheduled Anmerkung hat eine neueZone Attribut für genau diesen Zweck.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage