Package com.easydesk.web.scheduler
Class EasyDeskJob
java.lang.Object
org.springframework.scheduling.quartz.QuartzJobBean
com.easydesk.web.scheduler.EasyDeskJob
- All Implemented Interfaces:
org.quartz.Job
- Direct Known Subclasses:
HeartbeatJob
public abstract class EasyDeskJob
extends org.springframework.scheduling.quartz.QuartzJobBean
이 앱의 Quartz job 이 상속하는 기본 클래스.
- job 인스턴스는 Spring Boot 의 Quartz 자동 설정(SpringBeanJobFactory)이 만들어 주므로, 하위 클래스는
일반 Spring 빈처럼 생성자/필드로 다른 빈을 주입받을 수 있다.
-
executeJob(JobExecutionContext) 은 JobContextBinder 가 system 사용자 context 를 바인딩한
상태에서 호출된다. (그래서 executeInternal 은 final 로 막아 두었다 - context 없이 OM 을 건드리는 실수 방지)
- 시작/종료/소요시간/실패를 공통으로 로그에 남긴다. 예외는 JobExecutionException 으로 감싸서 Quartz 에 넘긴다
(refireImmediately=false : 바로 재실행하지 않고 다음 trigger 시점을 기다린다).
새 job 추가 방법은 QuartzJobConfig 의 주석을 참고.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.slf4j.Loggerstatic final StringJobDataMap key : 관리 화면에서 "지금 실행" 을 누른 사용자 이름 (일정에 따라 실행될 때는 없음) -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidexecuteInternal(org.quartz.JobExecutionContext context) protected abstract voidexecuteJob(org.quartz.JobExecutionContext context) 실제 job 내용. system 사용자 context(SecurityContextHolder / RequestContextHolder / TransactionContextHolder)가 바인딩된 상태에서 호출된다.voidsetJobContextBinder(JobContextBinder jobContextBinder) Methods inherited from class org.springframework.scheduling.quartz.QuartzJobBean
execute
-
Field Details
-
TRIGGERED_BY
JobDataMap key : 관리 화면에서 "지금 실행" 을 누른 사용자 이름 (일정에 따라 실행될 때는 없음)- See Also:
-
logger
protected final org.slf4j.Logger logger
-
-
Constructor Details
-
EasyDeskJob
public EasyDeskJob()
-
-
Method Details
-
setJobContextBinder
-
executeInternal
protected final void executeInternal(org.quartz.JobExecutionContext context) throws org.quartz.JobExecutionException - Specified by:
executeInternalin classorg.springframework.scheduling.quartz.QuartzJobBean- Throws:
org.quartz.JobExecutionException
-
executeJob
실제 job 내용. system 사용자 context(SecurityContextHolder / RequestContextHolder / TransactionContextHolder)가 바인딩된 상태에서 호출된다.- Parameters:
context- Quartz job 실행 정보 (JobDataMap, fireTime 등)- Throws:
Exception- 실패 시. Quartz 에는 JobExecutionException 으로 전달된다.
-