1

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

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

这是我的石英工作

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

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

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

cron 已安排。现在,当我重新启动服务器时,cron 不会启动。我将 cron 信息存储在 db 中,并且可以使用它在启动时再次设置 cron。

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

4

1 回答 1

1

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

    class BootStrap {


        def init = { servletContext ->
            def cronExpression = "*/10 * * * * ?"
            DailyJob.schedule(cronExpression)
        }
    }
于 2013-10-22T14:04:40.457 回答