2017-09-25 25 views
0

私が使用を回復いけませんクラスタサーバ...私はクラスタ内に2台のテストサーバを持っています(1 DB)。クォーツは仕事

スケジューラの作業罰金が、私はTomcatを停止(1)仕事を別のサーバー上で実行している私はTomcatの#2を再起動した場合(2)ジョブは、...その後、スケジューラ開始作業を

を回復されていません私がtomcat#1を始めると、tomcat#2が動作すると、石英はtomcat#1に取り組みます。非常に良い仕事が、

最初の質問:そして、私のために何jdbcjobstoreより良い:私は... Tomcatの#1が停止しているときに、Tomcatの#2が再起動せずにジョブを開始します

2番目の質問がありますか? JobStoreTXまたはJobStoreCMT?ワーククラスターでは、私は春に4サーバーを持っています。4.29

ごめんなさい、ありがとうございました!私は問題を発見した私のプロジェクトで

プロパティクォーツ、@Bean

Properties prop = new Properties(); 
prop.put("org.quartz.threadPool.class","org.quartz.simpl.SimpleThreadPool"); 
prop.put("org.quartz.threadPool.threadCount", "4"); 
prop.put("org.quartz.jobStore.misfireThreshold", "20000"); 
prop.put("quartz.scheduler.instanceName", "ServerScheduler"); 
prop.put("org.quartz.scheduler.instanceId", "AUTO"); 
prop.put("org.quartz.scheduler.skipUpdateCheck", "true"); 
prop.put("org.quartz.scheduler.instanceId", "IS_CLUSTERED"); 
prop.put("org.quartz.scheduler.jobFactory.class","org.quartz.simpl.SimpleJobFactory"); 
prop.put("org.quartz.jobStore.class","org.quartz.impl.jdbcjobstore.JobStoreCMT"); 
prop.put("org.quartz.jobStore.driverDelegateClass","org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"); 
prop.put("org.quartz.jobStore.dataSource", "myDS"); 
prop.put("org.quartz.jobStore.nonManagedTXDataSource", "myDS"); 
prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); 
prop.put("org.quartz.jobStore.isClustered", "true"); 
prop.put("org.quartz.dataSource.myDS.driver", "org.postgresql.Driver"); 
prop.put("org.quartz.dataSource.myDS.URL", url); 
prop.put("org.quartz.dataSource.myDS.user", user); 
prop.put("org.quartz.dataSource.myDS.password", password); 
prop.put("org.quartz.dataSource.myDS.maxConnections", "4"); 

私の仕事とトリガー

JobDetail job = newJob(QuartzStockTask.class) 
       .withIdentity("Job " + "1", "Job group " + "11") 
       .requestRecovery(true) 
       .build(); 

Trigger sTrigger1 = newTrigger() 
       .withIdentity("Trig " + "1", "Trig group " + "11") 
       .startNow() 
       .withSchedule(simpleSchedule() 
         .withIntervalInSeconds(10) 
         .repeatForever()) 
       .build(); 

scheduler.scheduleJob(job, sTrigger1); 
+0

初めてJobStoreTXを使用しましたが、問題は同じでしたが、JobStoreCMTを使用しようとしましたが、役に立たない... –

+0

"org.quartz.jobStore.clusterCheckinInterval"のデフォルトを使用していますか?これは、インスタンスがチェックインする頻度を決定します。この値が設定内で大きい場合、サーバー2は、サーバー1がダウンしていることをまだ検出していない可能性があります。 – Srinivas

+0

私はあなたの解決策を試しましたが、助けてくれませんでした –

答えて

0

、それが初めてで、ダブルorg.quartz.scheduler.instanceIdたAUTOです2番目のIS_CLUSTERED。 ありがとうございます!

+0

しかし、2つの質問は開いています! JobStoreTXまたはJobStoreCMT? –

+0

javadocsから、この部分のTomcatコンテナーを実行しているので、JobStoreCMTコンテナ[http://www.quartz-scheduler.org/api/2.1.7/org/quartz/impl/jdbcjobstore/JobStoreCMT.html]を優先する必要があります。 – Srinivas