我們有2個應用程序使用石英進行調度。我們的應用程序的quartz.properties如下:在同一個服務器實例和同一個作業庫上的多個Quartz實例
org.quartz.scheduler.instanceName = sr22QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = quartzDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.clusterCheckinInterval = 20000
org.quartz.scheduler.idleWaitTime=1000
#org.quartz.jobStore.acquireTriggersWithinLock=true
#Adding unusually high misfire threshold as we dont want to handle misfires
org.quartz.jobStore.misfireThreshold = 50000000
#org.quartz.jobStore.maxMisfiresToHandleAtATime = 0
org.quartz.dataSource.quartzDS.jndiURL= java:jdbc/quartzDS
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = false
#org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
#org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger \{1\}.\{0\} fired job \{6\}.\{5\} at: \{4, date, HH:mm:ss MM/dd/yyyy}
#org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger \{1\}.\{0\} completed firing job \{6\}.\{5\} at \{4, date, HH:mm:ss MM/dd/yyyy\}
其他應用程序具有相同的配置,但具有不同的實例名。
這兩個應用程序都將在同一組服務器實例上運行。它們都使用與數據庫中的Quartz Job存儲相同的一組表。
現在的問題是:
如果這兩個應用程序的同時運行時,觸發沒有正確路由。來自application1的觸發器被路由到application2,反之亦然。這是隨機發生的。
應用程序應該在同一個數據庫中使用不同的quatrz表集合嗎?我們應該爲每個服務器只有一個石英調度器實例用於多個應用程序?
我看到石英的隨機行爲。我們的設置有什麼問題嗎?
順便說一句,我們正在使用石英1.8。
任何幫助表示讚賞。
謝謝, Sri Harsha Yenuganti。