현재 우리는 애플리케이션에서 쿼츠 타이머를 사용하여 매일 자정에 메소드를 실행합니다. 문제는 여러 대의 서버에 배포 할 것이므로 각 서버가 작동하지 않도록하는 것입니다. 우리는 한 대의 서버로 작업을 시작하기를 원합니다.단일 호스트에서 쿼츠 작업을 실행하는 방법
JMX를 통해 노출되므로 호스트 중 하나에서 쿼츠 타이머를 일시 중지/종료 할 수 있지만 원하는 해결책은 아닙니다.
코드를 통해 쿼츠 작업을 하나의 호스트에서만 실행하도록 설정할 수 있습니까? (: 부동산-자리 ... 컨텍스트)에
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<bean id="timerJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" value="com.x.y.TestClass" />
<property name="targetMethod" value="testMethod" />
</bean>
<!-- Cron Trigger, runs every day at 2 AM -->
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="timerJob" />
<property name="cronExpression" value="$timer.chronExpression}" />
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="timerJob" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
<property name="quartzProperties">
<util:properties>
<prop key="org.quartz.scheduler.jmx.export">false</prop>
<prop key="org.quartz.scheduler.jmx.objectName">
quartz:type=QuartzScheduler,name=TestClass
</prop>
</util:properties>
</property>
</bean>
</beans>