1
我有一个像MyController.foo()
这样的方法,我想每天在00:00执行它。每天午夜执行任务 - Grails 3.2.2
我已经看到一些解决方案使用TimerTask在1秒内延迟几秒钟,但时间改变它的一天会带来一些错误。
那么...什么是最有效的方法来实现这一目标?
我有一个像MyController.foo()
这样的方法,我想每天在00:00执行它。每天午夜执行任务 - Grails 3.2.2
我已经看到一些解决方案使用TimerTask在1秒内延迟几秒钟,但时间改变它的一天会带来一些错误。
那么...什么是最有效的方法来实现这一目标?
首先,你需要使用弹簧启动注释,使调度:
@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。
我必须添加任何东西到持有'foo()'方法的控制器吗? –
我应该将该方法放置在控制器还是服务中? –
服务是计划任务的更好场所。 –