每天午夜执行任务 - Grails 3.2.2

时间:2017-09-26 10:56:28

标签: grails groovy scheduled-tasks

我有一个类似MyController.foo()的方法,我希望每天00:00执行它。

我见过一些使用TimerTask的解决方案,延迟时间为1天,但是一天的更改会带来一些错误。

那么......实现这一目标的最有效方法是什么?

1 个答案:

答案 0 :(得分:2)

首先,您需要使用spring boot注释启用计划:

@EnableScheduling
class Application extends GrailsAutoConfiguration {
    static void main(String[] args) {
        GrailsApp.run(Application, args)
    }
}

然后你可以在你的方法上添加@Scheduled注释:

@Scheduled(cron="00 00 * * *")
def foo() {
    //do something
}

Cron表达式00 00 * * *表示每个midnigth都执行。