Rumah >Java >javaTutorial >Bagaimana untuk menggunakan Kuarza untuk melaksanakan tugas berjadual ketersediaan tinggi Java?
Jika anda ingin melakukan tugas berjadual, mempunyai 高可用
keperluan atau hanya ingin menjadi 入门快
mudah untuk bermula, maka anda berhak memilihnya.
Modul tugas berjadual merangkum lagi rangka kerja Kuarza dan menjadikannya lebih mudah untuk digunakan.
<dependency> <groupId>xin.altitude.cms</groupId> <artifactId>ucode-cms-quartz</artifactId> <version>1.5.4.1</version> </dependency>
melaksanakan antara muka org.quartz.Job
untuk menambah strategi penjadualan tugasan CronExp
kepada Tugasan disuntik ke dalam bekas. Component
@Component @DisallowConcurrentExecution @CronExp(cron = "0/5 * * * * ?") public class DemoJob implements Job { @Override public void execute(JobExecutionContext context) { System.out.println("任务1:" + LocalDateTime.now()); } }3. Cetuskan tugas berjadual secara manual Selain berjalan secara berkala pada kekerapan sedia ada, tugas berjadual juga mempunyai keupayaan untuk dicetuskan secara manual melalui antara muka. Panggil antara muka berikut untuk mencetuskan tugasan secara manual dengan nombor ID tugas
. jobId
http://localhost:8080/cms-api/quartz/job/{jobId}
dan 唯一并
diperlukan, jadi ia perlu dinyatakan secara manual semasa menulis jadual berjadual tugasan. 已知
@CronExp(id = 1, cron = "0/5 * * * * ?")Anda boleh menentukan ID tugas dengan menganotasi atribut id
Jika anda tidak menyatakannya secara eksplisit, ID rawak akan digunakan tidak memenuhi syarat yang diketahui, jadi ia tidak boleh dicetuskan secara manual. CronExp
public void execute(JobExecutionContext context) { /* 如果在调用任务时传入了参数,则能够从Map中获取 */ Map<String, Object> dataMap = context.getMergedJobDataMap(); /* 比如从Map中获取一个键值对,一般来说参数均为基本数据类型 */ Object key = dataMap.get("key"); System.out.println("任务2:" + LocalDateTime.now() + ": " + key); }Apabila menulis tugasan yang dijadualkan, anda boleh menghuraikan Peta daripada objek
untuk melengkapkan suntikan parameter. JobExecutionContext
http://localhost:8080/cms-api/quartz/job/1?key=aMaksud panggilan http di atas adalah untuk mencetuskan tugasan secara manual dengan ID tugasan [1] dan memberikannya parameter [kunci] dengan nilai [a]. 5. Keselarasan tugasanRangka kerja ini tidak menyokong keselarasan tugas Dengan kata lain, keselarasan tidak sesuai untuk tugasan yang dijadualkan, jadi ia perlu dilumpuhkan secara manual. Perlu diingat bahawa keselarasan
merujuk kepada sama ada tugasan baharu akan dilaksanakan apabila masa pelaksanaan tugas melebihi kitaran penjadualan tugas dan tugasan sebelumnya belum dilaksanakan. Quartz
pada kelas tugasan untuk melumpuhkan keselarasan tugas. DisallowConcurrentExecution
spring: quartz: properties: org.quartz.jobStore.isClustered: true org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.dataSource: qzDS org.quartz.dataSource.qzDS.driver: com.mysql.cj.jdbc.Driver org.quartz.dataSource.qzDS.URL: jdbc:mysql://localhost:3306/quartz-demo org.quartz.dataSource.qzDS.user: root org.quartz.dataSource.qzDS.password: 123456Kecuali untuk mengubah suai lima parameter hos, port, nama pangkalan data, nama pengguna dan kata laluan, gunakan nilai lalai untuk parameter yang tinggal.
Selepas mengkonfigurasi sambungan pangkalan data, gunakan skrip SQL dan beri perhatian untuk memulakan pangkalan data
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Kuarza untuk melaksanakan tugas berjadual ketersediaan tinggi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!