Wenn Sie die Spring 3.0-Funktion zum Kommentieren einer geplanten Aufgabe verwenden, möchte ich den fixedDelay
Parameter as aus meiner Konfigurationsdatei festlegen , anstatt ihn wie derzeit fest mit meiner Aufgabenklasse zu verbinden ...
@Scheduled(fixedDelay = 5000)
public void readLog() {
...
}
Leider scheint es, dass mit den Mitteln der Spring Expression Language (SpEL) @Value
ein String-Objekt zurückgegeben wird, das wiederum nicht automatisch auf einen langen Wert geboxt werden kann, wie es der fixedDelay
Parameter erfordert .
Spring v3.2.2 hat String-Parameter zu den ursprünglichen 3 langen Parametern hinzugefügt, um dies zu handhaben.
fixedDelayString
,fixedRateString
UndinitialDelayString
ist jetzt auch verfügbar.quelle
Sie können die
@Scheduled
Anmerkung verwenden, jedoch nur zusammen mit demcron
Parameter:Ihr 5-Sekunden-Intervall könnte ausgedrückt werden als
"*/5 * * * * *"
. Soweit ich weiß, können Sie jedoch nicht weniger als 1 Sekunde genau angeben.quelle
In Spring Boot 2 können wir Spring Expression Language (SpPL) für
@Scheduled
Annotationseigenschaften verwenden:Die
application.properties
Datei sieht folgendermaßen aus:Das ist es. In diesem Artikel wird die Aufgabenplanung ausführlich erläutert.
quelle
Ich denke, Sie können den Wert selbst konvertieren, indem Sie eine Bean definieren. Ich habe das noch nicht ausprobiert , aber ich denke, der folgende Ansatz könnte für Sie nützlich sein:
wo:
quelle
@Scheduled
Anmerkung machen.