私はQuartzスケジューラを使用して、毎日特定の時間に自動メールをプッシュしています。私のアプリケーションは 2 つのクラスターで構成されていました。両方のクラスタのスケジューラが同時に起動し、重複した電子メールをユーザーに送信しています。スケジューラが 1 つだけ起動するようにするコードを教えてください。グーグルで調べたところ、JDBC-JobStoreが問題を解決することがわかりました.しかし、スケジュール情報をデータベースに保存したくありません. RAMJobStore は問題を解決しますか? 以下は私の既存のコードです。
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetails" />
<property name="cronExpression" value="0 51 10 * * ?"/>
</bean>
<bean id="jobDetails"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sendEmails" />
<property name="targetMethod" value="executeJob" />
<property name="concurrent" value="false" />
</bean>
<bean id="sendEmails" class="com.westin.agi.PushNotification"></bean>