Rumah >Java >javaTutorial >Penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas berjadual

Penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas berjadual

PHPz
PHPzasal
2023-06-22 23:58:391981semak imbas

Spring Boot ialah rangka kerja pembangunan Java yang sangat popular. Ia bukan sahaja mempunyai kelebihan pembangunan pesat, tetapi juga mempunyai banyak fungsi terbina dalam yang praktikal. Antaranya, penjadualan tugas dan tugas berjadual adalah salah satu fungsi yang biasa digunakan. Artikel ini akan meneroka kaedah penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas masa.

1. Pengenalan kepada penjadualan tugas Spring Boot

Penjadualan tugas Spring Boot (Penjadualan Tugas) merujuk kepada proses automatik untuk melaksanakan beberapa operasi tertentu pada masa tertentu atau dalam keadaan tertentu. Penjadualan tugas Spring Boot boleh menyelesaikan banyak senario, seperti sandaran pangkalan data berjadual, menghantar e-mel, membersihkan fail sementara secara kerap, data statistik, dsb. Penjadualan tugasan perlu memberikan masa yang tetap dan kemudian mencetuskan pelaksanaan tugas pada titik masa ini.

2. Pelaksanaan penjadualan tugas Spring Boot

  1. Perkenalkan kebergantungan tugas berjadual Spring Boot dalam fail pom.xml yang biasa digunakan:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-task</artifactId>
</dependency>
  1. Buat kelas tugas berjadual untuk melaksanakan logik tugasan tertentu, seperti:
@Component
public class MyTask {

    @Scheduled(cron = "0 0/1 * * * ?")
    public void execute() {
        // 任务执行逻辑
    }
}
  1. Konfigurasikan tugas berjadual dalam fail konfigurasi application.properties atau application.yml
# 配置定时任务的线程池大小
spring.task.scheduling.pool.size=5 
  1. Tambah anotasi @Scheduled pada kelas tugas dan tetapkan masa pelaksanaan tugas
@Component
public class MyTask {

    // cron表达式:定时执行时间,这里是每分钟执行一次
    @Scheduled(cron = "0 0/1 * * * ?")
    public void execute() {
        // 任务执行逻辑
    }
}
  1. Dayakan tugasan berjadual
@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. Uji tugas yang dijadualkan, dan konsol akan mengeluarkan masa pelaksanaan tugas, menunjukkan bahawa tugas yang dijadualkan telah mula dilaksanakan

Aplikasi tugasan yang dijadualkan adalah sangat luas, dan ia boleh melaksanakan kedua-dua tugas berjadual dan tugas kitaran Berbanding dengan pelaksanaan manual, ia lebih mudah dan cekap.

3. Pelaksanaan tugas berkala Spring Boot

  1. Tulis kelas tugas berjadual untuk melaksanakan logik pelaksanaan tugas berjadual
@Component
public class MyTask {
    @Scheduled(fixedRate = 5000)
    public void execute() {
        System.out.println("执行定时任务:" + LocalDateTime.now());
    }
}
  1. Dalam kelas tugas Gunakan anotasi @Scheduled untuk menentukan strategi pelaksanaan dan kitaran tugasan
@Scheduled(fixedRate = 5000)

Kod di atas menunjukkan bahawa tugasan akan dilaksanakan pada kali seterusnya selepas selang 5 saat selepas pelaksanaan terakhir. Terdapat strategi tugas berjadual lain yang biasa digunakan, seperti fixedDelay, yang bermaksud bahawa selepas pelaksanaan sebelumnya selesai, tunggu untuk tempoh masa tertentu sebelum melaksanakannya semula, yang bermaksud masa yang perlu menunggu sebelum tugasan pertama dilaksanakan; cron, yang bermaksud fleksibel dan kompleks Ungkapan yang mentakrifkan masa pelaksanaan tugas berkala.

  1. Tambah anotasi @EnableScheduling pada kelas permulaan untuk mendayakan tugasan yang dijadualkan
@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. Mulakan projek Spring Boot, dan tugasan akan dilaksanakan secara automatik pada masa yang ditentukan.

4 Langkah berjaga-jaga untuk tugas berjadual Spring Boot

  1. Tugas berjadual mungkin tertunda atau terlepas, terutamanya dalam situasi volum data yang besar atau konkurensi yang tinggi saiz dan tamat masa tugas hendaklah ditetapkan.
# 配置定时任务的线程池大小
spring.task.scheduling.pool.size=5
  1. Anda hanya perlu menambah anotasi @EnableScheduling pada kelas permulaan untuk mendayakan tugasan yang dijadualkan itu berulang kali, jika tidak, ia akan menyebabkan tugasan yang dijadualkan akan dilaksanakan beberapa kali .
  2. Elakkan menggunakan kaedah pelaksanaan tugas berjadual dengan prestasi serentak rendah dan gunakan penyelesaian serentak tinggi untuk mencapai pelaksanaan yang cekap.
  3. Kesimpulan

Artikel ini memperkenalkan penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas masa Dengan mempelajari artikel ini, pembaca boleh menguasai pengetahuan asas dan penggunaan penjadualan tugas. Penjadualan tugas adalah bahagian penting dalam pembangunan Java Memahami mekanisme pelaksanaan penjadualan tugas Spring Boot akan sangat membantu kami dalam membangunkan sistem ketersediaan tinggi.

Atas ialah kandungan terperinci Penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas berjadual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn