Quartz Job Scheduler: Pengenalan


Dalam membangun sebuah sistem enterprise maupun sebuah aplikasi, kita kerap kali membutuhkan scheduler. Sebagai contoh, kita mungkin perlu memeriksa account yang kadaluarsa setiap malam, atau menghapus data yang kadaluarsa secara periodik. Ini merupakan bagian dari aplikasi atau sistem kita!

Cara yang paling sederhana adalah memakai scheduler dari sistem operasi, seperti Windows Scheduler atau cron milik Linux/Unix. Ini berarti kita harus membuat sebuah program terpisah untuk menjalankan tugas yang dijadwalkan. Dari sisi maintenance, ini adalah hal yang buruk, karena kita telah membuat komponen scheduler yang terpisah dari sistem atau aplikasi kita.

Jika sistem atau aplikasi yang dikembangkan memakai teknologi Java, kita dapat menggunakan Quartz scheduler, sebuah framework open-source, sebagai solusi scheduling. Quartz juga sudah mendukung teknologi enterprise seperti clustering. Quartz dapat didownload di lokasi http://terracotta.org/dl/oss-download-destination?name=quartz-1.7.2.tar.gz&bucket=TCreleases&file=quartz-1.7.2.tar.gz.

Untuk memakai Quartz, tambahkan lokasi file quartz-1.7.2.jar ke dalam CLASSPATH. Jangan lupa juga sertakan JAR lain yang dibutuhkan oleh Quartz, seperti commons-logging-1.1.jar, commons-validator-1.3.1.jar, dan seterusnya.

Tugas yang akan dijalankan oleh Quartz scheduler dinamakan job. Setiap job diwakili oleh sebuah class Java yang meng-implementasi-kan interface org.quartz.Job. Kita dapat menuliskan kode program business logic yang akan dikerjakan di method execute(). Berikut ini adalah contoh sebuah job yang mencetak waktu saat ini ke layar:

public class TestJob implements Job {
   @Override
   public void execute(JobExecutionContext context)
      throws JobExecutionException {
         System.out.println("TestJob: [" +
             Calendar.getInstance().getTime() + "]");
   }
}

Untuk menjalankan job tersebut, kita harus membuat scheduler, mendaftarkan job ke dalam scheduler, kemudian menjalankan scheduler, seperti pada contoh kode berikut:

public class Main {
   public Main() {
   try {
      // Langkah 1: Membuat scheduler
     Scheduler scheduler =  StdSchedulerFactory.getDefaultScheduler();

     // Langkah 2: Membuat informasi Job
    JobDetail jobDetail = new JobDetail("Latihan Quartz",
         Scheduler.DEFAULT_GROUP, TestJob.class);

    // Langkah 3: Membuat Trigger Per 10 detik
    Trigger trigger = TriggerUtils.makeSecondlyTrigger(10);
    trigger.setName("Latihan Trigger");
    trigger.setStartTime(new Date());

    // Langkah 4: Menjadwalkan Job
    scheduler.scheduleJob(jobDetail, trigger);

    // Langkah 5: menjalankan Scheduler
    scheduler.start();

   } catch (SchedulerException ex) {
       ex.printStackTrace();
   }
 }

 public static void main(String[] args) {
    new Main();
 }
}

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: