6 Ağustos 2019 Salı

Quartz Kullanımı

Maven
Şu satırı dahil ederiz
<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.3.1</version>
</dependency>
Şeklen şöyle

İyi ve kötü tarafları şöyle
Pros
1. Provides Clustering between schedulers based on DB
2. Supports system Fail-over and random load distribution
3. Provides In-memory Job Scheduler
4. Shutdown HookPlugin
catches JVM shutdown event and notifies scheduler of shutdown
5. LoggingJobHistoryPlugin
It can be useful for debugging by leaving a log for Job execution
6. Enables dynamic scheduling
can make the contents that worked at 9 o’clock today work at 10 o’clock tomorrow without any modification

Cons
1. It provides clustering capabilities, but because it is a simple random approach, load balancing between clusters is not complete.
2. It does not provide UI, so it must be implemented directly if necessary
3. History for scheduling execution is not archived

Kullanım
1. Scheduler Arayüzünü gerçekleştiren bir nesne yaratılır. Bu nesneyi yaratmak için StdSchedulerFactory sınıfı kullanılır

2. scheduler.start() çağrısı ile scheduler başlatılır.

3. JobBuilder sınıfı kullanılarak bir JobDetail nesnesi yaratılır. JobDetail nesnesi Job yani çalışacak işi ve JobKey nesnesini içerir.

4. TriggerBuilder sınıfı kullanılarak bir Trigger nesnesi yaratılır. Trigger işin ne zaman çalışacağını belirtir. İki çeşit Trigger vardır.

4.1 SimpleTrigger işin tam olarak hangi zamanda çalışacağını belirtir. SimpleTrigger single shot veya periodic olabilir

4.2 CronTrigger işin takvimsel olarak ne zaman çalışacağını belirtir.

5. Job ve Trigger nesneleri Scheduler nesnesine eklenir.

6. Scheduler nesnesine Listener nesnesi eklenir. Açıklaması şöyle
Listener is an interface provided by Quartz to receive events from the Scheduler

JobListener
Operates when job is started and ended

TriggerListener
You can receive an event when a trigger occurs or fails, or when completing a trigger
JobStore
Açıklaması şöyle
Job and Trigger can be stored in memory or DB


Hiç yorum yok:

Yorum Gönder