Package com.easydesk.web.controller
Class ScheduleJobAdminController
java.lang.Object
com.easydesk.web.controller.ScheduleJobAdminController
Schedule Job 관리 화면 (Screen "AdminScheduleJobs").
Quartz Scheduler 에 등록된 job 목록(일정, 이전/다음 실행, 마지막 실행 결과)을 보여주고, "지금 실행" 버튼으로
일정과 상관없이 job 을 한 번 실행한다 (Scheduler#triggerJob). 실행은 Quartz thread 에서 비동기로 되고
EasyDeskJob 이 system 사용자(app.scheduler.run-as) context 로 돌린다. 누가 눌렀는지는 JobDataMap 의
EasyDeskJob.TRIGGERED_BY 로 넘겨서 [job] 로그와 마지막 실행 결과에 남는다.
-
Constructor Summary
ConstructorsConstructorDescriptionScheduleJobAdminController(org.quartz.Scheduler scheduler, JobRunHistory jobRunHistory, org.springframework.context.MessageSource messageSource) -
Method Summary
Modifier and TypeMethodDescriptionlist(HttpSession session, org.springframework.ui.Model model) runNow(String group, String name, HttpSession session, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes) "지금 실행".
-
Constructor Details
-
ScheduleJobAdminController
public ScheduleJobAdminController(org.quartz.Scheduler scheduler, JobRunHistory jobRunHistory, org.springframework.context.MessageSource messageSource)
-
-
Method Details
-
list
@GetMapping("/admin/schedule-jobs") public String list(HttpSession session, org.springframework.ui.Model model) -
runNow
@PostMapping("/admin/schedule-jobs/run") public String runNow(@RequestParam("group") String group, @RequestParam("name") String name, HttpSession session, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes) "지금 실행". 같은 job 이 이미 돌고 있고 동시 실행이 막혀 있으면(@DisallowConcurrentExecution) 요청을 받지 않는다 (받아 두면 Quartz 가 앞 실행이 끝날 때까지 BLOCKED 로 기다렸다가 바로 다시 실행해서 헷갈린다).
-