2016-04-29 7 views
0

私はgrails quartz pluginを使ってスケジューリングを実装しています。 QuartzConfig.groovy props(クラスタ化スケジューラ)を備えたスケジューラを1つ作成しました。私は、Non-Clusteredスケジューリングのために同じアプリケーションにもう1つのスケジューラーを必要としています。grail quartzプラグインを使用した複数のスケジューラ

同じgrails quartzプラグインを使ってどうすればいいですか?

newQuartzScheduler(org.springframework.scheduling.quartz.SchedulerFactoryBean) { 
    Properties properties = new Properties() 
    properties.setProperty('org.quartz.threadPool.threadCount', 5) 
    quartzProperties = properties 

    autoStartup = false 
    waitForJobsToCompleteOnShutdown = true 
    exposeSchedulerInRepository = false 
    jobFactory = ref('quartzJobFactory') 
    globalJobListeners = [ref("${SessionBinderJobListener.NAME}"), ref("${ExceptionPrinterJobListener.NAME}")] 
} 

をブートストラップに以下のコードを追加します。

+0

でdoWithApplicationContextを参照してください次に、あなたは、スタンドアロンのインスタンスで同じアプリケーションを実行する必要がありますが、同じデータベースにそれを指しています。これはあなたが探しているものですか? – Armaiti

答えて

0

私はこれがresources.groovyに新しいスケジューラBeanを作成しません。

newQuartzScheduler.addJob(grailsApplication.mainContext.getBean('org.com.jobs.JobNameJobDetail'), true) 
newQuartzScheduler.start() 

クォーツプラグインはジョブごとにBeanを作成し、その名前にそのサフィックスを含むため、ジョブ名に 'Detail'が必要です。

私の場合、私のジョブのうちの1つだけを実行するために別のキューを用意する必要があります。

石英プラグインはスケジューラ内のすべてのジョブを追加します。

あなたは両方のスケジューラにすべての仕事を持っている必要がある場合はQuartzGrailsPluginクラス

関連する問題