Ajastetuista tehtävistä puhuttaessa kannattaa ajatella @Scheduledia, Quartzia ja XXL-JOBia. Jotkut yksittäiset palvelut tai pienet projektit voivat kuitenkin käyttää @Scheduledia suoraan asynkronisten tehtävien toteuttamiseen mukavuuden ja nopeuden vuoksi. Siksi tämän artikkelin teemavaatimuksia on laajennettu.
Kun @Scheduled on käytössä projektissa, kuinka määritetty asynkroninen tehtävä voidaan suorittaa etukäteen, kun projekti käynnistetään?
1. Yksityiskohtainen kuvaus @Scheduled
@Scheduled-merkintä tukee useita parametreja tehtävän suoritusajan joustavaan hallintaan.
cron: Cron-lauseke, joka voi ohjata tarkasti sekunteja, minuutteja, tunteja, päiviä, kuukausia, viikkoja jne.
vyöhyke: Vastaanota aikavyöhyke, kuten Aasia/Shanghai, yleensä käyttämämme aikavyöhyke. Jätämme tämän kentän yleensä tyhjäksi.
fixDelay: Kuinka kauan viimeisen suorituksen päättymisajan jälkeen se suoritetaan uudelleen. Kuten @Scheduled(fixedDelay = 5000)
fixDelayString: sillä on sama merkitys kuinfixDelaylla, mutta merkkijonon muodossa. Ainoa ero on, että se tukee paikkamerkkejä, kuten @Scheduled(fixedDelayString = "5000")
FixRate: Kuinka kauan viimeisen suoritusajan alkamisen jälkeen, kuten @Scheduled(fixedRate = 5000)
fixRateString: Sama merkitys kuinfixRate, mutta merkkijonon muodossa. Ainoa ero on, että paikkamerkkejä tuetaan.
InitialDelay: Kuinka kauan viivästää suoritusta ensimmäistä kertaa. Esimerkiksi ensimmäinen viive on 1 sekunti ennen suoritusta. Sen jälkeen se suoritetaan 5 sekunnin välein @Scheduled(initialDelay=1000,fixRate=5000). )
initialDelayString: sillä on sama merkitys kuin originDelayStringillä, mutta merkkijonon muodossa. Ainoa ero on, että paikkamerkkejä tuetaan.
Huomautus: Muista lisätä @EnableScheduling käynnistysluokkaan, jotta ajoitettu tehtävä suoritetaan. Tämä ei tietenkään vaikuta tämän artikkelin logiikkatestiin.