본문 바로가기

Scheduler5

[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.