我用:石英不恢復工作
- 春4.2.9
- PostgreSQL的
- 石英2.3.0
- 的Java 8
我有一些問題,在恢復作業集羣服務器...我在集羣中有2個測試服務器(1個數據庫)。
調度工作很好,但是當我停止Tomcat(1),其中作業正在運行,另一臺服務器(2)作業未恢復上...
如果我重新啓動Tomcat#2,然後調度開始工作,如果我啓動tomcat#1,當tomcat#2工作時,石英將工作轉移到tomcat#1。工作很不錯,但
第一個問題:我需要當Tomcat#1停止Tomcat的#2將無重新開始工作......
第二個問題:什麼jdbcjobstore更好的給我嗎? JobStoreTX or JobStoreCMT?在工作集羣中,我有4個服務器在春季4.2.9
對不起,我的英語和非常感謝你的答案!
屬性石英,@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);
我第一次使用JobStoreTX和問題是一樣的,我試圖使用JobStoreCMT,但它沒有幫助... –
你使用默認的「org.quartz.jobStore.clusterCheckinInterval」?這決定了實例檢查的頻率。如果此值在設置中較大,則服務器2可能尚未檢測到服務器1已關閉。 – Srinivas
我試過你的解決方案,但沒有幫助 –