2012-06-25 2 views
6

저는 Java Quartz에 익숙하지 않습니다. 우리는 매일 테스트 작업을 사용했습니다. Struts2 웹 응용 프로그램의 경우 하루 중 여러 시간대에 예약 된 몇 가지 일별 작업을 실행하려고합니다. 작업은 서버가 다운되었거나 응용 프로그램이 실패하여 작업이 실패하더라도 나중에 서버가 가동 될 때 다시 실행해야하는 지속성 상태 여야합니다. 또한 작업의 상태/결과를 DB에 저장하여 작업을 모니터링 할 수 있습니다. 어떤 제안이라도 도움이 될 것입니다.JavaQuartz 작업 지속성

- 감사

+0

저는 Quartz가 이러한 모든 기능을 가지고 있다고 믿습니다. 확실히 영구 작업 저장소를 사용할 수 있습니다. – Thilo

답변

6

는 석영 스케줄러에 가능하며 우리가 일반적으로 Misfire Instructions를 호출 트리거와 기능이 그것을 트리거의 또 다른 중요한 특성은 "실화 명령

입니다

에 대한 문서 말할 것입니다 이미있는 ". Quartz의 스레드 풀에 작업을 실행하기 위해 사용할 수있는 스레드가 없기 때문에 지속적 트리거가 종료 될 때까지 지속 트리거가 실행 시간을 "잃어 버리면"실화가 발생합니다. 다른 트리거 유형에는 서로 다른 실화 명령이 있습니다. 기본적으로 이들은 '스마트 정책'명령어를 사용합니다.이 명령어는 트리거 유형 및 구성에 따라 동적 인 동작을합니다. 스케줄러가 시작되면 실격 된 지속 트리거를 검색 한 다음 개별적으로 구성된 실화 명령을 기반으로 각각을 업데이트합니다. 자신의 프로젝트에서 Quartz를 사용할 때, 주어진 트리거 유형에 정의되어 있고 JavaDoc에서 설명 된 실화 명령에 익숙해 져야합니다. 실화 지시에 대한 자세한 내용은 각 트리거 유형별 자습서에서 제공됩니다.

에 관한 작업 지속성 석영 메커니즘에 몇 빌드와 함께 제공하고 JDBCJobStore

로 JobStore을 설정 할 필요가있는 당신이 Quartz scheduler document의 아주 쉬운 이동과 함께 시작하는 튜토리얼을 많이하고 증거를 가지고하는 것이 좋습니다.

응용 프로그램에서 Spring을 사용하지 않는 경우, 추가 수준의 추상화 및 종속성을 추가 할 필요가 없습니다.

+0

문서를 살펴본 후 jobStore는 작업자, 트리거, 캘린더 등 스케줄러에 제공하는 모든 "작업 데이터"를 추적하는 작업을 담당합니다. jobStore에 Job 상태도 저장할 수 있습니까? , 결과/실행 상태 .. –

+0

당신은 또한 정보를 얻을 수있을 것입니다 –

+0

어떤 특정 수업 번호. 문서에서 스케줄러 작업의 작업 상태 검색에 대한 세부 정보를 찾을 수 있습니다. –

1

우리는 자바 석영의 Job stores API를 가지고있다. 그러면 작업 정보에 대한 데이터베이스의 데이터가 유지됩니다. 그래서 나는 이것이 당신을 도울 것 같아요. this link을 확인하면 코드 및 DB 구조에 대한 아이디어를 얻을 수 있습니다.

2

석영을 Sprig batch과 결합하여 사용할 수 있습니다.

전자는 다양한 흐름 (필요한만큼 복잡함), 작업 상태의 영구 저장소 및 실행 상태에 따라 작업을 모니터링하고 다시 실행하기위한 API를 제공합니다. 또 다른 편리한 라이브러리는 Spring Batch admin입니다. 그것은 웹 콘솔과 5 분 가이드가 있습니다.

쿼츠는 스케줄러로 사용됩니다. 작업 상태 지속성은 Spring 배치에 의해 처리됩니다. 독립형 자바 응용 프로그램과 웹/응용 프로그램 컨테이너 (Tomcat이면 충분합니다)에서 실행할 수 있습니다.

행운을 빈다. 당신이 언급 한 무엇이든

+0

Spring Batch Admin을 사용하려면 기존 Struts2 웹 응용 프로그램에서 스프링 프레임 워크를 사용해야합니까 –

+0

예, 필요합니다. – aviad

+0

의견을 보내 주셔서 감사합니다. –