在服务器重启时使用grails中的石英自动重启cron作业

时间:2013-10-22 13:40:07

标签: grails cron quartz-scheduler

我在grails项目中使用石英插件进行cron调度。 在我的应用程序中,用户提供了一个脚本和cron配置,我使用quartz设置为cron。

但是当我重新启动服务器时,这些cron作业无法启动。 我是否必须再次手动创建这些cron作业,或者有一种方法可以自动存储和重新启动它们。

这是我的Quartz Job

class RscriptJob {
    def execute() {
        println "hello"
    }
}

这是控制器,它通过视图接收来自用户的请求以设置cron

class UploadsController {
   def upload() {
      def cron=params.cronString
      RscriptJob.schedule(cron)
   }
}

预定了cron。现在,当我重新启动服务器时,cron没有启动。 我在cdb中存储cron信息,可以在启动时再次使用它来设置cron。

但我想知道石英是否具有支持它的内置功能。<​​/ p>

1 个答案:

答案 0 :(得分:1)

我认为您可以从启动时执行的bootstrap.groovy触发DailyJob,这里是安排工作的地方

    class BootStrap {


        def init = { servletContext ->
            def cronExpression = "*/10 * * * * ?"
            DailyJob.schedule(cronExpression)
        }
    }