uI有一个应用程序集群在2 + 2设置中,其中2台机器用于alpha产品阶段,另外两台用于真正的客户。所有机器都在查看同一个数据库, 我需要在午夜为每个小组运行一份工作。两个alpha机器中的一个应该得到一份工作,另外两个应该得到另一份工作。
我正在使用带有以下属性的Quartz 1.8.5的Spring 3.0.5
phase=alpha
quartz.job.name=MY_JOB_${phase}
<bean id="quartzPropertiesFactoryBean" class="com.liveperson.kwo.quartz.QuartzPropertiesFactory">
<constructor-arg value="AUTO"/>
<constructor-arg value="MY_CLUSTER"/>
<constructor-arg value="JobStoreTX"/>
<constructor-arg value="StdJDBCDelegate"/>
<constructor-arg value="true"/> //isClustered
<constructor-arg value="false"/> //useProperties
</bean>
<bean name="runJobBean" class="org.quartz.JobDetail">
<property name="name" value="${quartz.job.name}"/>
<property name="jobClass" value="CLASS1"/>
<property name="group" value="JOB-for-${quartz.job.name}"/>
<property name="jobDataMap">
<bean class="org.quartz.JobDataMap">
</bean>
</property>
</bean>
<bean name="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="quartzProperties" ref="quartzPropertiesFactoryBean"/>
<property name="dataSource" ref="mySqlConnectorBean"/>
<property name="overwriteExistingJobs" value="true"/>
<property name="jobDetails">
<list>
<ref bean="runJobBean"/>
</list>
</property>
<property name="triggers">
<list>
<ref bean="cronTriggerBean"/>
</list>
</property>
</bean>
我定义了两个作业,一个用于alpha,另一个用于生产抛出阶段属性,而我遇到的问题是我为alpha阶段定义的作业在定义到生产的节点上运行,我该如何才能完成工作为alpha阶段定义的只在为alpha定义的机器上运行?
谢谢!