grails - 每天午夜执行任务-Grails 3.2.2

标签 grails groovy scheduled-tasks

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

我已经看到一些使用TimerTask的解决方案,其延迟时间以秒为单位,但以天为单位的更改会带来一些错误。

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

最佳答案

首先,您需要使用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 * * *表示在每个中间执行一次。

关于grails - 每天午夜执行任务-Grails 3.2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46424549/

相关文章:

groovy - 使用container()在SwingBuilder中添加JSplitPane的自定义子类会导致IllegalArgumentException

c# - 安排 C# 应用程序

java - 将 Spring tx 与任务混合

grails - GRAILS:groovy.lang.MissingPropertyException:没有此类属性。

java - 由于 "Could not determine java version"错误,无法在 Mac 上的新项目上运行 grails 命令

spring - Grails属性初始化

events - Grails 2.5 afterUpdate - 它在事务生命周期的哪个点被调用?

grails - 用于发送不返回完整堆栈跟踪的 log4j 错误的自定义电子邮件附加程序

java - 使用属性文件禁用调度

testing - 根据环境执行特定的 Geb 测试