2

Spring Web アプリケーションを実行する 2 つの Tomcat ノードのクラスターがあります。各ジョブが最大 1 つのノードで実行されるように、Quartz を で構成し、クラスタリングを提供するようRAMJobStoreに切り替えています。LocalDataSourceJobStore一部の新しいジョブを含むほとんどのジョブはデータベース上で動作し、この機能の恩恵を受けます。

残念ながら、RAM 内のデータを操作するジョブが 1 つありますが、同期が設定されていません。私が見ることができる最も簡単な解決策は、RAMJobStore.

LocalDataSourceJobStore の下のすべてのノードでジョブを実行するように構成する方法はありますか?

正確なタイミングは重要ではありませんが、ジョブはすべてのノードで 30 分ごとに実行する必要があります

4

1 に答える 1

0

私はこれを試していませんが、クラスタ化されたジョブ用と RAM ジョブ ストア用の 2 つのスケジューラを構成できると思います。春を使用している場合は、次のように構成します。

クラスター化されたストアの場合

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="configLocation" value="classpath:quartz.properties" />
    ...... configure your clustered triggers here 
</bean> 

次に、RAM ストア用に、別の Quartz.properties ファイルを使用して別のスケジューラーをセットアップします。

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="configLocation" value="classpath:quartz_ram.properties" />
    ...... configure your RAM store triggers here 
</bean> 
于 2013-04-18T18:42:58.950 に答える