u我有一个以 2+2 设置集群的应用程序,其中 2 台机器用于 alpha 产品阶段,另外两台用于真实客户。所有机器都在查看同一个数据库,我需要在午夜为每个组运行一份工作。两台 alpha 机器中的一台应该得到一份工作,另外两台应该得到另一份工作。
我正在使用 Spring 3.0.5 和 Quartz 1.8.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 定义的机器上运行?
谢谢!