Anotasi Penjadualan Musim Bunga

Artikel ini adalah sebahagian daripada siri: • Anotasi Inti Musim Semi

• Anotasi Web Spring

• Anotasi Boot Musim Semi

• Anotasi Penjadualan Musim Semi (artikel semasa)

• Anotasi Kacang Musim Bunga

1. Gambaran keseluruhan

Apabila pelaksanaan single-threaded tidak mencukupi, kita dapat menggunakan anotasi dari pakej pemberitahuan org.springframework.scheduling.annotation .

Dalam tutorial ringkas ini, kita akan meneroka Anotasi Penjadualan Musim Semi.

2. @EnableAsync

Dengan penjelasan ini, kita dapat mengaktifkan fungsi tak segerak pada musim bunga.

Kita mesti menggunakannya dengan @Configuration :

@Configuration @EnableAsync class VehicleFactoryConfig {}

Sekarang, setelah kami mengaktifkan panggilan tidak segerak, kami dapat menggunakan @Async untuk menentukan kaedah yang menyokongnya.

3. @EnableScheduling

Dengan penjelasan ini, kita dapat mengaktifkan penjadualan dalam aplikasi.

Kami juga harus menggunakannya bersama dengan @Configuration :

@Configuration @EnableScheduling class VehicleFactoryConfig {}

Hasilnya, kita sekarang dapat menjalankan kaedah secara berkala dengan @Schedched .

4. @Async

Kami dapat menentukan kaedah yang ingin kami laksanakan pada utas yang berbeza , oleh itu jalankan secara tidak segerak.

Untuk mencapainya, kami dapat memberi penjelasan kaedah dengan @Async :

@Async void repairCar() { // ... }

Sekiranya kita menerapkan anotasi ini ke kelas, maka semua kaedah akan dipanggil secara tidak segerak.

Perhatikan, bahawa kita perlu mengaktifkan panggilan tidak segerak agar anotasi ini berfungsi, dengan konfigurasi @EnableAsync atau XML.

Maklumat lebih lanjut mengenai @Async boleh didapati dalam artikel ini.

5. @ Dijadualkan

Sekiranya kita memerlukan kaedah untuk melaksanakan secara berkala , kita dapat menggunakan penjelasan ini:

@Scheduled(fixedRate = 10000) void checkVehicle() { // ... }

Kita dapat menggunakannya untuk melaksanakan metode pada selang waktu tetap , atau kita dapat menyesuaikannya dengan ungkapan seperti cron .

@Schedched memanfaatkan ciri anotasi berulang Java 8, yang bermaksud kita dapat menandakan kaedah dengannya berulang kali:

@Scheduled(fixedRate = 10000) @Scheduled(cron = "0 * * * * MON-FRI") void checkVehicle() { // ... }

Perhatikan, bahawa kaedah yang dijelaskan dengan @Schedched harus mempunyai jenis pengembalian yang tidak sah .

Selain itu, kita mesti membolehkan penjadualan untuk anotasi ini berfungsi misalnya dengan konfigurasi @EnableScheduling atau XML.

Untuk maklumat lebih lanjut mengenai penjadualan baca artikel ini.

6. @ Jadual

Kami dapat menggunakan anotasi ini untuk menentukan beberapa peraturan @Jadual :

@Schedules({ @Scheduled(fixedRate = 10000), @Scheduled(cron = "0 * * * * MON-FRI") }) void checkVehicle() { // ... }

Perhatikan, bahawa sejak Java 8 kita dapat mencapai hal yang sama dengan fitur anotasi berulang seperti yang dijelaskan di atas.

7. Kesimpulannya

Dalam artikel ini, kami melihat gambaran keseluruhan penjelasan penjadualan musim bunga yang paling biasa.

Seperti biasa, contohnya terdapat di GitHub.

Seterusnya » Anotasi Data Musim Bunga « Anotasi Boot Musim Semi Sebelumnya