diff --git a/quartz/build.gradle.kts b/quartz/build.gradle.kts new file mode 100644 index 0000000..c8cf6ff --- /dev/null +++ b/quartz/build.gradle.kts @@ -0,0 +1,16 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +plugins { + id("elex-java") +} + +dependencies { +// https://mvnrepository.com/artifact/org.quartz-scheduler/quartz + implementation("org.quartz-scheduler:quartz:2.3.2") + +} diff --git a/quartz/logback.xml b/quartz/logback.xml new file mode 100644 index 0000000..74ff8a3 --- /dev/null +++ b/quartz/logback.xml @@ -0,0 +1,20 @@ + + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + diff --git a/quartz/src/main/java/kr/pe/elex/examples/MyJob.java b/quartz/src/main/java/kr/pe/elex/examples/MyJob.java new file mode 100644 index 0000000..ade0725 --- /dev/null +++ b/quartz/src/main/java/kr/pe/elex/examples/MyJob.java @@ -0,0 +1,20 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import org.quartz.*; + +public class MyJob implements Job { + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + JobKey jobKey = context.getJobDetail().getKey(); + System.out.println(jobKey); + JobDataMap jobDataMap = context.getJobDetail().getJobDataMap(); + System.out.println(jobDataMap.getString("myVar1")); + } +} diff --git a/quartz/src/main/java/kr/pe/elex/examples/Quartz.java b/quartz/src/main/java/kr/pe/elex/examples/Quartz.java new file mode 100644 index 0000000..d7a7de6 --- /dev/null +++ b/quartz/src/main/java/kr/pe/elex/examples/Quartz.java @@ -0,0 +1,40 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import lombok.extern.slf4j.Slf4j; +import org.quartz.*; +import org.quartz.impl.StdSchedulerFactory; + + +@Slf4j +public class Quartz { + public static void main(String... args) throws SchedulerException { + SchedulerFactory schedulerFactory = new StdSchedulerFactory(); + Scheduler scheduler = schedulerFactory.getScheduler(); + scheduler.start(); + + // 잡을 정의합니다. + JobDetail job = JobBuilder.newJob(MyJob.class) + .withIdentity("myJob", "group1") + .usingJobData("myVar1", "Hello") + .build(); + + // 트리거를 정의합니다. + Trigger trigger = TriggerBuilder.newTrigger() + .withIdentity("myTrigger", "group1") + .startNow() + .withSchedule(SimpleScheduleBuilder.simpleSchedule() + .withIntervalInSeconds(30) + .repeatForever()) + .build(); + + // 잡과 트리거를 사용해서 스케쥴러에 전달합니다. + scheduler.scheduleJob(job, trigger); + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 46fd87c..9bf7d6e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,5 +14,5 @@ include( "thread", "hibernate", "jdbc-sqlite", "xml", "jackson", "jsoup", "markdown", "network", "httpd", "swing", "java-fx", "properties", - "mustache", "thymeleaf", "locale" + "mustache", "thymeleaf", "locale", "quartz" )