Class ScheduleJobAdminController

java.lang.Object
com.easydesk.web.controller.ScheduleJobAdminController

@Screen("AdminScheduleJobs") @Controller public class ScheduleJobAdminController extends Object
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 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 로 기다렸다가 바로 다시 실행해서 헷갈린다).