我正在使用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之前,我已经运行了几周。我不确定这是否与它有任何关系。
提前感谢您提供任何帮助。
答案 0 :(得分:3)
我们使用@Scheduled的方式在3.1.7中打破了
我对this grails issue发表评论,而Graeme Rocher表示放
boolean lazyInit = false
在服务中。这似乎让事情再次发挥作用。