배치 스케쥴러 중복실행관련 문의드립니다.
- 작성자 :
- 임*식
- 작성일 :
- 2013-07-22 13:49:10
- 조회수 :
- 1,020
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
현재 하단처럼 crontab을 사용하여 배치job을 실행하고 있습니다.
1분간격으로 job이 실행되는데 문제는
job이 10분을 초과할 경우 새로운 job instance가 실행되어서
DB 입력시 무결성에러를 발생하고 있습니다.
DB 키값을 max+1이 아닌 시퀀스를 부여하여 자동증가하게 했는데도
에러가 나더라구요..
결론은 job이 끝난 후에 job이 실행되게 해야하고
job은 늘 정각에서 10분간격으로
실행되도록 해야하는데.. 방법 있을까요?
프로그램적으로 어떻게 추가해야하는지 구체적인 예시가 있는지
부탁드립니다.
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="0 0/10 * * * ?" />
</bean>
</property>
</bean>
1분간격으로 job이 실행되는데 문제는
job이 10분을 초과할 경우 새로운 job instance가 실행되어서
DB 입력시 무결성에러를 발생하고 있습니다.
DB 키값을 max+1이 아닌 시퀀스를 부여하여 자동증가하게 했는데도
에러가 나더라구요..
결론은 job이 끝난 후에 job이 실행되게 해야하고
job은 늘 정각에서 10분간격으로
실행되도록 해야하는데.. 방법 있을까요?
프로그램적으로 어떻게 추가해야하는지 구체적인 예시가 있는지
부탁드립니다.
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="0 0/10 * * * ?" />
</bean>
</property>
</bean>
A
안녕하세요. 임응식님.
jobDetail로 지정하신 MethodInvokingJobDetailFactoryBean의 속성 중에 "concurrent" 속성이 있습니다. 이 속성을 "false"로 하시면 중복호출되지 않습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
jobDetail로 지정하신 MethodInvokingJobDetailFactoryBean의 속성 중에 "concurrent" 속성이 있습니다. 이 속성을 "false"로 하시면 중복호출되지 않습니다.
그럼, 즐거운 하루되십시오.
감사합니다.