2017-12-18 23 views
0

다른 사용자 입력으로 실행되는 작업 클래스가 하나 있습니다. JobDetail 및 Trigger 모두에서 JobDataMap을 지정할 수 있음을 알았습니다. 따라서, 올바르게 이해하면 두 가지 옵션이 있습니다.JobDetail JobDataMap 대 트리거 여러 작업이있는 하나의 작업에 대한 JobDataMap

(1) JobDetail의 JobDataMap - 사용자가 새 입력 및 일정을 지정하면 해당 입력으로 새 JobDetail을 만들고 새 트리거를 만듭니다. 그런 다음 새로 생성 된 jobDetail과 트리거를 스케줄러에 추가하십시오.

(2) 트리거의 JobDataMap - 사용자가 새 입력 및 스케줄을 지정할 때, 해당 입력으로 새 트리거를 작성하고 이미 추가 된 jobDetail의 스케줄러에 트리거를 추가하십시오.

하나의 옵션보다 다른 옵션을 선호하는 이유가 있습니까?

감사합니다.

답변

0

내 개인적인 경험에서, 우리는 첫 번째 접근 방식을 사용한다고 말합니다. (JobDetail에 작업 매개 변수를 지정하십시오).

이 결정을하는 주된 이유는 그것이 이해하고 유지하는 것이 더 간단하고 깨끗해 보입니다.

  • 는 사용자의 일정을 특정 매개 변수를 사용하여 작업, 우리는 JobDetailJobDataMap와 그에 따라 채워 만들 때.
  • 이 예약 된 작업의은 여러 번 실행될 수 있으며 매개 변수가 변경되지 않고 모든 작업 실행에 대해 동일하게 유지되어야합니다.
  • 사용자가 다른 매개 변수를 사용하여 동일한 유형의 작업을 예약하려는 경우 새로운 JobDetail이 생성되어 스케쥴러에 추가됩니다.
  • 이렇게하면 작업을 실행하는 데 필요한 모든 정보 (사용자 지정 매개 변수, 인수 등)가 포함 된 주 "작업 정의"가 JobDetail으로 가정되고 실행 시간을 처리 할 개체는 Trigger으로 남겨 둡니다.

그냥 내 두 센트.

+0

감사합니다. 그건 내 취향이 될거야. 나는 직업 입력을 트리거에 추가하는 것을 선호하는 경우가 무엇인지 궁금해하고있었습니다. 그러나 이것은 도움이되었습니다, 감사합니다. – enkay