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

Jun 17, 2023 am 09:40 AM
pembangunan backend java java quartz pengurusan tugas berjadual api

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pembangunan backend Java: Ujian unit API mengejek menggunakan Mockito Pembangunan backend Java: Ujian unit API mengejek menggunakan Mockito Jun 17, 2023 am 08:27 AM

Dengan populariti Internet, pembangunan back-end Java telah menjadi bidang yang penting. Dalam proses pembangunan, ujian unit ialah langkah yang sangat kritikal, dan Mockito ialah alat simulasi ujian unit API yang sangat baik. Artikel ini akan memperkenalkan cara menggunakan Mockito dalam pembangunan back-end Java. Apa itu Mockito? Mockito ialah rangka kerja Java yang menyediakan keupayaan simulasi ujian unit API dalam bentuk objek Mock. Objek olok-olok merujuk kepada beberapa objek maya yang tingkah lakunya ditetapkan oleh kami

Pembangunan back-end Java: Menggunakan Java Quartz untuk pengurusan tugas berjadual API Pembangunan back-end Java: Menggunakan Java Quartz untuk pengurusan tugas berjadual API Jun 17, 2023 am 09:40 AM

Pembangunan backend Java adalah 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 JavaQuartz ialah alat yang patut diberi perhatian untuk mencapai tugas ini. JavaQuartz ialah rangka kerja penjadualan kerja sumber terbuka yang boleh digunakan untuk melaksanakan pelbagai keperluan penjadualan dalam aplikasi Java. ini

Pembangunan back-end Java: Menggunakan Invocation Kaedah Jauh Java untuk panggilan jauh API Pembangunan back-end Java: Menggunakan Invocation Kaedah Jauh Java untuk panggilan jauh API Jun 17, 2023 am 10:44 AM

Java ialah bahasa pengaturcaraan berorientasikan objek peringkat tinggi dengan keserasian, keselamatan dan kestabilan platform yang baik. Dengan perkembangan teknologi Internet, semakin banyak aplikasi memerlukan panggilan jauh melalui API untuk mencapai perkongsian data dan interaksi maklumat. JavaRemoteMethodInvocation (RMI) ialah teknologi invocation jauh berdasarkan platform Java, yang boleh merealisasikan invocation kaedah jauh antara objek Java. Artikel ini akan memperkenalkan anda kepada konsep dan prinsip kerja JavaRMI

Pembangunan back-end Java: Pengurusan sumber jauh API menggunakan Invocation Kaedah Jauh Java Pembangunan back-end Java: Pengurusan sumber jauh API menggunakan Invocation Kaedah Jauh Java Jun 17, 2023 am 10:16 AM

JavaRemoteMethodInvocation (pendek kata RMI) ialah ciri bahasa pengaturcaraan Java yang membolehkan program Java secara tidak langsung memanggil program Java lain melalui rangkaian untuk menyokong pengurusan sumber jauh. Ciri ini amat penting dalam pengurusan sumber jauh API. Dalam artikel ini, kami akan memperkenalkan cara menggunakan RMI untuk pengurusan sumber jauh API dan meneroka kelebihan dan kekurangan kaedah ini. Tentukan sumber jauh yang perlu diurus dan gunakan RMI untuk pengurusan sumber jauh API.

Pembangunan backend Java: Format pertukaran data API menggunakan Java MessagePack Pembangunan backend Java: Format pertukaran data API menggunakan Java MessagePack Jun 17, 2023 am 08:52 AM

Dengan perkembangan Internet, bentuk API menjadi lebih pelbagai. Pembangun perlu mempertimbangkan cara memilih format pertukaran data untuk memastikan kelajuan dan kebolehpercayaan API. Untuk pembangun backend Java, JavaMessagePack ialah format pertukaran data yang cekap yang boleh membantu memudahkan penghantaran dan pemprosesan data untuk API. Artikel ini akan memperkenalkan konsep asas JavaMessagePack dan cara menggunakannya dalam pembangunan back-end Java untuk meningkatkan kecekapan dan prestasi API. Apa itu Java

Bagaimana untuk mengoptimumkan penghantaran rangkaian dalam pembangunan fungsi backend Java? Bagaimana untuk mengoptimumkan penghantaran rangkaian dalam pembangunan fungsi backend Java? Aug 05, 2023 pm 02:16 PM

Bagaimana untuk mengoptimumkan penghantaran rangkaian dalam pembangunan fungsi backend Java? Dalam pembangunan back-end Java, penghantaran rangkaian adalah pautan penting. Sama ada berinteraksi dengan bahagian hadapan atau berkomunikasi dengan perkhidmatan lain, penghantaran rangkaian yang cekap adalah salah satu faktor penting untuk memastikan prestasi sistem. Mengoptimumkan penghantaran rangkaian boleh meningkatkan kelajuan tindak balas dan kebolehpercayaan sistem. Artikel ini akan memperkenalkan beberapa kaedah untuk mengoptimumkan penghantaran rangkaian dan menyediakan contoh kod untuk pembaca memahami dan menggunakan dengan lebih baik. Menggunakan protokol penghantaran rangkaian yang sesuai Dalam pembangunan back-end Java, kita boleh memilih yang sesuai

Pembangunan backend Java: Pengurusan penghalaan terus API menggunakan Java Direct Exchange Pembangunan backend Java: Pengurusan penghalaan terus API menggunakan Java Direct Exchange Jun 17, 2023 am 08:37 AM

Dengan pembangunan dan aplikasi meluas teknologi Internet, WebAPI (Application Programming Interface) telah menjadi bahagian penting dalam pembangunan perisian moden. WebAPI berfungsi sebagai protokol komunikasi yang membenarkan aplikasi yang berbeza untuk berkomunikasi antara satu sama lain. Dalam pembangunan dan pengurusan API, teknologi back-end Java sentiasa menjadi salah satu arus perdana. Walau bagaimanapun, pembangun bahagian belakang Java selalunya perlu mematuhi norma dan piawaian tertentu apabila menggunakan penghalaan API. Dan JavaDirectExchange (JDE) boleh

Bagaimana untuk menggunakan rangka kerja ORM dalam pembangunan fungsi backend Java? Bagaimana untuk menggunakan rangka kerja ORM dalam pembangunan fungsi backend Java? Aug 05, 2023 am 10:01 AM

Bagaimana untuk menggunakan rangka kerja ORM dalam pembangunan fungsi backend Java? Rangka kerja ORM (Object Relational Mapping) ialah alat yang digunakan secara meluas dalam pembangunan back-end Java Ia boleh memetakan struktur jadual dalam pangkalan data ke dalam objek dan menyediakan API yang mudah untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan cara menggunakan rangka kerja ORM dalam pembangunan backend Java, dengan contoh kod. Memilih rangka kerja ORM yang sesuai Sebelum menggunakan rangka kerja ORM, kita perlu memilih rangka kerja yang sesuai terlebih dahulu. Dalam pembangunan Java, Hibernate dan MyBa

See all articles