Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan pemasa dengan SpringBoot

Bagaimana untuk melaksanakan pemasa dengan SpringBoot

王林
王林ke hadapan
2023-05-10 14:58:221071semak imbas

Pelaksanaan pemasa

Kod kelas permulaan but musim bunga, menambahkan anotasi @EnableScheduling untuk menghidupkan fungsi pemasa

@SpringBootApplication   
@EnableScheduling   // 开启定时功能
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

Kod tugasan penjadualan, kelas tugas perlu disuntik ke dalam @Component anotasi Dalam bekas IoC

@Component
public class TestSchedulingTask {
    // 这个cron表达式代表从0秒开始,每过3秒执行一次。
    @Scheduled(cron = "0/3 * * * * ?")
    public void test(){
        // 大家可以根据公司的业务来实现,更希望是@Autowrite注入service层的接口,业务逻辑写在service层中。
        // 这里测试我就输出当前系统时间了...
        Date date  = new Date(System.currentTimeMillis());
        String rule = "yyyy-MM-dd HH:mm:ss";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(rule);
        String format = simpleDateFormat.format(date);
        System.out.println(format);
    }
}

ambil perhatian di sini bahawa setiap kaedah tugasan mesti diberi anotasi dengan @Scheduled dan ungkapan cron mesti dinyatakan.

Anda boleh yakin, dan terdapat juga tapak web yang menjana ungkapan cron dalam talian. Mari kita lihat hasil keluaran konsol.

Bagaimana untuk melaksanakan pemasa dengan SpringBoot

Penjelasan terperinci tentang ungkapan cron

ungkapan cron

字段 范围 允许的字符
秒(second) 0-59 ,/-*
分(minute) 0-59 ,/-*
小时(hour) 0-23 ,/-*
日期(day of month) 1-31(需要考虑月份不一致) ,/-*?LW
月份(month) 1-12(对应的英文缩写也行) ,/-*
星期(day of week) 1-7 ,/-*?L
年(year) 这玩意基本用不到 这玩意基本用不到

Penjelasan aksara yang dibenarkan:

, : Ia adalah penghitungan dengan berbilang nilai Contohnya, 5 dan 20 dalam saat mewakili pencetus pada 5 dan 20 saat.

/: nilai 1/nilai 2, nilai 1 mewakili masa mula, nilai 2 mewakili kekerapan, contohnya, dalam kes saya, ia mencetuskan setiap 3 saat bermula dari 0 saat.

-: Nilai julat, dari berapa lama hingga berapa lama.

*: Biasa kepada semua julat.

?: Hanya wujud dalam tarikh dan minggu Jika anda ingin mencetuskan pada 2hb setiap bulan, tetapi jika anda menggunakan * pada minggu itu, ia akan mencetuskan setiap hari, yang akan menyebabkan pepijat ia perlu? untuk menggantikan *.

L: bermaksud yang terakhir, muncul dalam tarikh dan minggu Contohnya, menggunakan L dalam tarikh bermakna hari terakhir bulan, dan menggunakan 3L dalam minggu bermakna mencetuskan pada hari Rabu terakhir.

W: Menunjukkan hari bekerja, digunakan dalam tarikh Jika 9W digunakan, ia akan dicetuskan secara langsung jika 9 jatuh pada hari Isnin 1-5 Jika 9 hari Sabtu, ia akan dicetuskan pada 8hb . Jika 9 hari Ahad, ia akan dicetuskan pada hari Isnin Pencetus pertama ialah pencetus nombor 10.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemasa dengan SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam