我有一个Grails 2.0.1 webappp,应该每隔几个小时运行一些任务。我正在使用Spring的集成任务调度来实现这一点,因此我不需要另一个插件。
但是,当我尝试对数据库执行任何操作时,例如保存模型,我收到以下错误消息:
消息:没有方法签名:rssreader.Feed.save()适用于参数类型:()值:[] 可能的解决方案:save(),save(boolean),save(java.util.Map),wait(),any(),wait(long)
使用以下代码:
@Transactional
class FeedRefresherService {
@Scheduled(fixedDelay = 3000L)
public void madeUpMethod() {
def feed = new Feed()
feed.title = "Test feed"
feed.save()
}
}
我认为这与GORM方法因调度而无法使用有关,但我不知道如何从这里开始。 有人有线索吗?
答案 0 :(得分:0)
我认为你的Hibernate Session已经“断开连接”我过去遇到了类似的错误,但是不记得我是如何解决的...... :(
对于任务调度,您可以使用quartz plugin这是非常稳定的,我已经在生产中使用了相当长的一段时间。看看Executor plugin的源代码,该代码处理将hibernate会话与多个线程相关联,虽然它可能无法解决您的问题,但它可能会为您提供如何解决它的问题。