2012-03-27 121 views
1

我有一個Grails 2.0.1 webappp,它應該每隔幾個小時運行一些任務。我使用Spring的集成任務調度來實現這一點,所以我不需要另一個插件。Grails服務和彈簧任務調度

然而,當我試圖做任何與數據庫,就像保存模型,我得到了以下錯誤消息:

消息:法無簽名:rssreader.Feed.save() ()value:[] 可能的解決方案: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

如果是因爲GORM方法不可用,我認爲你不會看到列出的保存方法作爲可能的解決方案 – 2012-03-27 18:23:35

+1

我想@Scheduled annotati on在grails中不受支持。 http://jira.grails.org/browse/GRAILS-8921 – tuler 2012-05-07 14:27:58

回答

0

我覺得你的Hibernate的Session了「斷開」我已經在過去面臨着同樣的錯誤,但不記得我是如何解決它... :(

對於您可以使用quartz plugin這是相當穩定的任務調度,我一直在生產中使用它一段時間,看看Executor plugin的源代碼,該代碼將hibernate會話與多個線程相關聯,但它可能無法解決您的問題,它可能會爲您帶來如何解決它