informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ketika @Scheduled digunakan dalam sebuah proyek, bagaimana tugas asinkron yang ditentukan dapat dijalankan terlebih dahulu ketika proyek dimulai?
Anotasi @Scheduled mendukung beberapa parameter untuk mengontrol waktu pelaksanaan tugas secara fleksibel.
/**
* @Author 码至终章
* @Version 1.0
*/
@Component
public class ScheduledTest {
@Scheduled(cron = "* 1 * * * ?")
public void task1() throws Exception{
System.out.println("task1 执行: " + Thread.currentThread() + "-" + DateTime.now());
}
}
Kelas ini terutama memanggil metode tugas yang ditentukan secara manual saat startup
/**
* @Author 码至终章
* @Version 1.0
*/
@Component
public class StartupTasks {
private final ScheduledTest scheduledTasks;
public StartupTasks(ScheduledTest scheduledTasks) {
this.scheduledTasks = scheduledTasks;
}
@PostConstruct
public void startUp() {
try {
System.out.println("服务启动执行任务");
scheduledTasks.task1();
}catch (Exception e){
e.printStackTrace();
}
}
}
Catatan: Ingatlah untuk menambahkan @EnableScheduling ke kelas startup sehingga tugas yang dijadwalkan akan dijalankan. Tentu saja, hal ini tidak mempengaruhi pengujian logika artikel ini.
Setelah layanan dimulai, lihat informasi pencetakan