升级到Grails 3.1.9后@Scheduled Annotation失败

时间:2016-07-28 03:19:39

标签: spring grails scheduled-tasks

我正在使用Grails 3.1.9中的@Scheduled注释,并且在从3.1.0.RC2升级到3.1.9之后,注释的服务方法根本没有执行。降级回3.1.0.RC2会使其再次运行。

这是我的服务......

package com.mycompany.app

import grails.transaction.Transactional
import org.springframework.scheduling.annotation.Scheduled

@Transactional
class InstanceSnapshotService {

    @Scheduled(fixedDelay = 30000L, initialDelay = 30000L)
    void updateSnapshots() {
        Date start = new Date()
        log.info("Started Updating Snapshots at $start")
        ... do stuff ...
        log.info("Finished Updating Snapshots after ${new Date().time - start.time}ms")
    }    
}

这是我的Application.groovy ......

package com.datapriviasoftware.completesso

...
import org.springframework.scheduling.annotation.EnableScheduling

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

    @Override
    void setEnvironment(Environment environment) {
    ...
    }
}

就像我说的那样,在我们从Grails 3.1.0-RC2升级到Grails 3.1.9之前,我已经运行了几周。我不确定这是否与它有任何关系。

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:3)

我们使用@Scheduled的方式在3.1.7中打破了

我对this grails issue发表评论,而Graeme Rocher表示放

boolean lazyInit = false

在服务中。这似乎让事情再次发挥作用。