grails - Quartz cronExpression来自Grails中的数据库

标签 grails quartz-scheduler

我在grails:2.4.4应用程序中添加了quartz:1.0.2插件。

我要实现的是设置cronExpression值表单数据库。

我已经从grails-command创建了一个名为myBatch的作业。在myBatchJob.groovy的触发器块中,如果我尝试从数据库中获取任何数据,则不允许这样做。

我也尝试在BootStrap.groovy中添加以下内容

def quartzScheduler
def init = { servletContext ->
    CronTrigger trigger = quartzScheduler.getTrigger("myBatchJobTrigger","DEFAULT")

    def conf_expr = Configuration.findByConfigKey("batch_job_config_expression").configValue

    trigger.setCronExpression '${conf_expr}'
    quartzScheduler.rescheduleJob (trigger.getName(), trigger.getGroup(), trigger)
}

但这给了我这个错误
groovy.lang.MissingMethodException: No signature of method: org.quartz.impl.StdScheduler.getTrigger() is applicable for argument types: (java.lang.String, java.lang.String)

在上面的代码中,配置是具有两个字段configKey和configValue的域。而且我也导入了org.quartz.CronTrigger但没有运气。

请帮忙!

最佳答案

从作业文件中删除triggers closure。然后,您可以在BootStrap.groovy中从数据库中获取cron expression并使用动态计划方法来计划您的工作。例如,您的BootStrap.groovy init闭包可以像下面这样

    Configuration config = Configuration.findByConfigKey("batch_job_config_expression")
    MyBatchJob.schedule(config.configValue)

有关动态调度的更多信息http://grails-plugins.github.io/grails-quartz/guide/triggers.html

关于grails - Quartz cronExpression来自Grails中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578868/

相关文章:

grails - 安装 Grails 插件时遇到问题

performance - Grails 3 vs 4 性能、启动时间和内存

java - 运行错过的 Quartz 作业

java - Spring+quartz 给出 java.lang.NoClassDefFoundError : weblogic/logging/LogEntryFormatter

angularjs - Grails spring-security-rest 身份验证被拒绝 : Dynamic method get<Artefact>Class(artefactName)

mysql - 迁移 Grail 的 HSQLDB 嵌入式数据库

grails - 在Grails中下载文件时如何设置内容长度

spring - 从 Grails 中的 Quartz 作业渲染 GSP

java - Quartz Scheduler 测试场景不工作

c# - 每月、每周和每天的 Quartz.Net Cron 表达式