如何在Grails中的服务器启动时运行调度程序/计时器

Jay*_*ran 4 grails

我有一个计时器类,计划每5分钟执行一次.我想在tomcat第一次启动时启动这个计时器类.在Grails中这样做的最佳方法是什么?

谢谢.杰伊钱德兰

Rob*_*ska 5

如果您需要比定时器更多的灵活性,您可以使用Quartz插件并配置Cron作业:

class MyTimerJob {
    static triggers = {
        // cron trigger for every 5 minutes
        cron name: 'myCronTrigger', cronExpression: '0 */5 * * * ?'
    }

    def execute = {
        // perform task
    }
}
Run Code Online (Sandbox Code Playgroud)

要在应用程序启动时启动Quartz (比如Jared说:不在tomcat启动时),请确保您grails-app/conf/QuartzConfig.groovy具有以下内容:

quartz {
    autoStartup = true
}
Run Code Online (Sandbox Code Playgroud)

autoStartup = true 是默认值,因此您可能不需要更改任何内容.

使用此插件将使您不必自己处理计时器逻辑.