grails - 使用grail quartz 插件的多个调度程序

标签 grails quartz-scheduler grails-plugin

我正在使用grails quartz plugin在我们的应用程序中实现计划。我已经使用QuartzConfig.groovy属性创建了一个调度程序,它是集群调度程序。我想要在同一应用程序中为非集群调度添加一个调度程序。

我如何使用相同的grails quartz 插件来实现这一点。

最佳答案

我这样做是在resources.groovy中创建一个新的调度程序bean:

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}")]
}

并在BootStrap中添加以下代码。
newQuartzScheduler.addJob(grailsApplication.mainContext.getBean('org.com.jobs.JobNameJobDetail'), true)
newQuartzScheduler.start()

作业名称中的“详细信息”是必需的,因为Quartz插件会为每个作业创建一个bean,并在其名称后包含该后缀。

就我而言,我需要有一个不同的队列来仅执行我的一项工作。

quartz 插件将所有作业添加到调度程序中。

如果需要在两个调度程序中都包含所有作业,请参见QuartzGrailsPlugin类中的doWithApplicationContext

关于grails - 使用grail quartz 插件的多个调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36941121/

相关文章:

apache - Apache 后面的 Grails 应用程序看不到/访问手动设置的 header

chalice 2.5 : how to propogate the IP address down to service layer?

grails - Grails,从gsp更改域类属性

hibernate - Grails 有很多 : find all master records with a child that matches a criteria

c# - 如何将数组作为参数发送到 C# 中的 quartz 计划作业?

cluster-computing - 找到负责运行 Quartz 作业的节点

java - 如何使用sql手动更改quartz作业计划时间?

grails - 约束错误…在生产和测试环境中的外键。开发人员运作良好。 - Cereal

Grails 从公司防火墙后面安装插件来阻止访问

grails - Grails用户和密码保护到URL