Rumah > pembangunan bahagian belakang > tutorial php > Pembangunan back-end Java: Menggunakan Java Quartz untuk pengurusan tugas berjadual API

Pembangunan back-end Java: Menggunakan Java Quartz untuk pengurusan tugas berjadual API

WBOY
Lepaskan: 2023-06-17 09:42:01
asal
1489 orang telah melayarinya

Pembangunan backend Java ialah bidang yang sangat luas dan popular kerana bahasa Java digunakan secara meluas dalam pembangunan aplikasi peringkat perusahaan. Dalam bidang ini, pembangun perlu menguasai pelbagai teknologi dan alatan untuk mencapai penulisan perisian berkualiti tinggi. Salah satu teknologi penting ialah pengurusan tugas berjadual API, dan Java Quartz ialah alat yang perlu diberi perhatian untuk mencapai tugas ini.

Java Quartz ialah rangka kerja penjadualan kerja sumber terbuka yang boleh digunakan untuk melaksanakan pelbagai keperluan penjadualan dalam aplikasi Java. Rangka kerja ini mempunyai fungsi yang sangat berkuasa dan boleh melaksanakan tugas penjadualan berdasarkan piawaian yang berbeza seperti masa, tarikh, minggu, bulan, tahun, dsb., dan juga boleh menghantar keputusan pelaksanaan tugas kepada aplikasi sebagai acara.

Untuk pembangun, menggunakan Java Quartz adalah sangat mudah dan mudah. Kami hanya perlu memperkenalkan perpustakaan pergantungan yang sepadan dan mengkonfigurasi beberapa parameter untuk menggunakannya untuk mengurus tugas berjadual API. Di bawah, kami akan memperkenalkan beberapa kaedah menggunakan Java Quartz untuk mengurus tugas berjadual API.

  1. Tambahkan perpustakaan bergantung dan fail konfigurasi

Pertama, kami perlu memperkenalkan perpustakaan bergantung Java Quartz ke dalam projek kami. Anda boleh menggunakan Maven untuk mengurus kebergantungan ini. Tambahkan kandungan berikut pada fail pom.xml projek:

<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>x.x.x</version>
</dependency>
Salin selepas log masuk

di mana x.x.x ialah nombor versi Java Quartz. Kami boleh menyemak versi terkini di laman web rasmi Java Quartz.

Selepas memperkenalkan perpustakaan bergantung, kami perlu mencipta fail konfigurasi untuk mengkonfigurasi parameter Java Quartz. Untuk parameter konfigurasi khusus, sila lihat dokumentasi rasmi Java Quartz. Di sini kami memberikan contoh fail konfigurasi mudah:

# Quartz properties
org.quartz.scheduler.wait_for_jobs_to_complete = true
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5

# JobStore properties
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false

# DataSource properties
org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost:3306/quartz
org.quartz.dataSource.myDS.user = quartz
org.quartz.dataSource.myDS.password = password
Salin selepas log masuk

Dalam fail konfigurasi ini, kami menetapkan saiz kolam benang kepada 5, menggunakan pangkalan data MySQL sebagai penyimpanan data Kuarza, awalan jadual data ialah QRTZ_, dan juga tetapkan konfigurasi Kuarza untuk menunggu penyelesaian tugas.

  1. Buat tugas berjadual API

Seterusnya, kita perlu mencipta tugas berjadual API. Tugas ini boleh menjadi panggilan fungsi mudah atau operasi kompleks, seperti menghantar e-mel, menjana laporan, dsb.

Dalam Java Quartz, kami boleh melaksanakan tugas berjadual API dengan mencipta kelas tugas yang melaksanakan antara muka Kerja. Dalam kelas tugas ini, kita perlu melaksanakan kaedah pelaksanaan untuk menyelesaikan operasi tugas penjadualan tertentu.

Berikut ialah contoh mudah:

package com.example.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {
 
    public void execute(JobExecutionContext context)
            throws JobExecutionException {
 
        System.out.println("Hello Quartz!");
 
    }
 
}
Salin selepas log masuk

Dalam kelas tugasan ini, kami menggunakan System.out.println untuk mencetak mesej.

  1. Konfigurasikan pencetus tugas berjadual API

Selepas mencipta kelas tugas, kita perlu mencipta pencetus untuk memutuskan masa untuk menjalankan tugasan. Dalam Java Quartz, pencetus ialah komponen yang digunakan untuk menentukan bila tugas akan dilaksanakan. Mereka boleh menjadualkan tugas berdasarkan kriteria yang berbeza, seperti masa atau tarikh.

Java Quartz menyokong pelbagai jenis pencetus. Dalam artikel ini, kami memperkenalkan jenis pencetus yang paling biasa digunakan: SimpleTrigger, CronTrigger, DailyTimeIntervalTrigger.

Antaranya, SimpleTrigger ialah jenis pencetus yang paling mudah Ia hanya akan dilaksanakan sekali atau beberapa kali berdasarkan parameter tertentu. CronTrigger ialah pencetus berdasarkan ungkapan Cron dan kami boleh menggunakannya untuk menjadualkan tugas berdasarkan corak tarikh atau masa. DailyTimeIntervalTrigger ialah pencetus berdasarkan selang masa relatif atau mutlak, yang boleh digunakan untuk melaksanakan tugas dengan kerap, seperti setiap hari, setiap jam, setiap minit, dsb.

Di bawah ini kami akan memberikan contoh mudah CronTrigger:

package com.example.quartz;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class CronTriggerExample {
    public static void main(String[] args) throws Exception {

        JobDetail job = JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob", "group1")
                .build();

        CronTrigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "group1")
                .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
                .build();

        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);
    }
}
Salin selepas log masuk

Dalam contoh ini, kami mencipta CronTrigger yang akan dijalankan setiap 5 saat. Pencetus ini akan menjadualkan tugas dengan contoh Kerja sebagai parameter. Tugasan ini ialah contoh kelas MyJob.

  1. Jalankan tugas berjadual API

Akhir sekali, kita perlu menjalankan tugas ini. Kita boleh menggunakan kelas Penjadual Java Quartz untuk memulakan tugas dan menentukan masa penjadualan tugas yang sepadan. Kelas Penjadual menyediakan banyak kaedah dan sifat untuk mengawal pelaksanaan tugas, seperti pauseJob(), resumeJob(), shutdown(), dsb.

Berikut ialah contoh mudah untuk memulakan tugasan berjadual API:

package com.example.quartz;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzTest {
    public static void main(String[] args) throws Exception {

        SchedulerFactory sf = new StdSchedulerFactory();
        Scheduler scheduler = sf.getScheduler();

        // start the scheduler
        scheduler.start();

        // define the job and tie it to our MyJob class
        JobDetail job = JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob", "group1")
                .build();

        // Trigger the job to run now, and then every 40 seconds
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "group1")
                .startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                        .withIntervalInSeconds(40)
                        .repeatForever())
                .build();

        // Tell quartz to schedule the job using our trigger
        scheduler.scheduleJob(job, trigger);

        // wait until Quartz has finished executing jobs
        Thread.sleep(60000);

        // shutdown the scheduler
        scheduler.shutdown(true);
    }
}
Salin selepas log masuk

Dalam contoh ini, kami menggunakan SimpleTrigger, yang menjadualkan tugasan sekarang, dan kemudian menjadualkannya semula setiap 40 saat Tugas . Pada penghujung kaedah utama, kami tidurkan benang selama 60 saat dan kemudian gunakan kaedah scheduler.shutdown(true) untuk menghentikan tugasan.

Dengan cara ini, kami boleh melaksanakan pengurusan tugas berjadual API dengan mudah. Sama ada dalam proses pembangunan produk atau dalam operasi dan penyelenggaraan harian, Java Quartz ialah alat yang patut diberi perhatian serius.

Atas ialah kandungan terperinci Pembangunan back-end Java: Menggunakan Java Quartz untuk pengurusan tugas berjadual API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan