quartz(5)
-
[JAVA] Quartz 스케줄러 만들기 (5) - Crawler Job
서론 이번 포스트에서는 드디어 스케줄러에 Crawler를 적용해보려고 한다. 기존 예제들은 주로 스케줄러를 설정했었다면, 이번 시간에는 실제 스케줄에 맞춰서 실제 실행되는 작업을 구현할 계획이다. 예제니까 간단하게 현재 블로그의 전체 글목록을 조회하는 Crawler를 만들 계획이며, Jsoup 라이브러리를 이용하려고 한다. 개발환경 - jdk-11.0.5 - quartz-2.3.2 - jsoup-1.11.3 org.quartz-scheduler quartz 2.3.2 org.jsoup jsoup 1.11.3 org.slf4j slf4j-api 1.7.25 ch.qos.logback logback-classic 1.2.3 소스코드 1. CrawlerJob.java 1 2 3 4 5 6 7 8 9 10 11..
2020.11.12 -
[JAVA] Quartz 스케줄러 만들기 (4) - Step By Step
서론 지난 포스트에서 Scheduler에 Listener를 적용했었는데, 로그를 출력하는것 외에는 활용하지 못했었다. 그러다가, Spring Batch의 Step처럼 하나의 작업이 끝나면 설정된 다음 작업으로 이어질 수 있도록 연결해보면 좋을것 같다는 생각이들었다. 그래서, 이번 포스트에서는 JobListener를 이용하여 Job을 순차적으로 실행시켜 보도록하겠다. 개발환경 - jdk-11.0.5 - quartz-2.3.2 org.quartz-scheduler quartz 2.3.2 org.slf4j slf4j-api 1.7.25 ch.qos.logback logback-classic 1.2.3 소스코드 1. MainJob.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1..
2020.11.11 -
[JAVA] Quartz 스케줄러 만들기 (3) - Job 강제 종료
서론 지난 포스트에서는 Listener를 적용해보았다. 어떤 순서로 돌아가는지, 오류가 발생했을 때는 어떻게 되는지 궁금해서 수행중인 Job을 강제로 중단시키거나 오류를 발생시키고 싶어졌다. 그러나, Quartz에서 스케줄을 종료할 때 Scheduler.shutdown() 함수를 사용하는데, 이 함수는 Trigger를 종료시키는 명령으로써 이미 수행중인 Job에는 영향을 주지않는다. 따라서, 이미 진행되고 있는 Job은 멈출 수 없으므로 별도의 기능을 구현해야한다. 그래서 이번 포스트에서는 Job을 강제로 중단시키기는 방법에 대해서 다루어보려고한다. 개발환경 - jdk-11.0.5 - quartz-2.3.2 org.quartz-scheduler quartz 2.3.2 org.slf4j slf4j-api ..
2020.11.11 -
[JAVA] Quartz 스케줄러 만들기 (2) - Listener
서론 이전 포스트에서는 간단하게 Quartz를 이용한 스케줄러를 만들고 실행해보았다. 이번 포스트에서는 Listener에 대해서 알아볼 계획이다. Listener는 주로 프로세스의 실행, 종료, 중단 등의 라이프사이클에 따라 로그를 출력하거나 추가 로직을 작성할 수 있는 객체인데, 굳이 설정하지 않아도 실행하는데 문제가 되지는 않는다. Quartz에서는 ScheduleListener, TriggerListener, JobListener 이렇게 총 3가지가 있는데, ScheduleListener는 너무 세분화되어 있어서 생략하고, Trigger와 Job Listener에 대해서 다루어 보려고 한다. 개발환경 - jdk-11.0.5 - quartz-2.3.2 org.quartz-scheduler quartz..
2020.11.10 -
[JAVA] Quartz 스케줄러 만들기 (1) - 실행
서론 예전에 커뮤니티 사이트에서 글목록을 수집하고 DB에 저장하는 크롤러를 만든적이 있었다. 이 때, 주기적으로 실행하기 위해서 crontab이나 Windows 작업 스케줄러를 사용했다. 이 두개의 스케줄러는 사용하기는 편하지만 프로그램과 스케줄을 별도로 관리해야하기 때문에 관리포인트가 늘어나는 단점이 있다. 그래서, 이번에는 스케줄러를 직접 만들어보려고 하는데 Spring Batch는 써본적이 있기 때문에 이번에는 Quartz로 만들어 보려고 한다. 개발환경 - jdk-11.0.5 - quartz-2.3.2 org.quartz-scheduler quartz 2.3.2 Quartz란? - Java Scheduling 라이브러리. - 일련의 작업들을 단발성, 주기성으로 실행할 수 있음. 구성요소 1. JO..
2020.11.09