Услуги Grails и планирование задач Spring - PullRequest
1 голос
/ 27 марта 2012

У меня есть веб-приложение Grails 2.0.1, которое должно запускать какую-то задачу каждые пару часов. Я использую интегрированное планирование задач Spring, чтобы это произошло, поэтому мне не нужен еще один плагин.

Однако, когда я пытаюсь что-то сделать с базой данных, например сохранить модель, я получаю следующее сообщение об ошибке:

Сообщение: нет подписи метода: rssreader.Feed.save () применим для типов аргументов: () значения: [] Возможные решения: save (), save (логическое), 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, недоступными из-за планирования, но я не уверен, что делать дальше. У кого-нибудь есть подсказка?

1 Ответ

0 голосов
/ 28 марта 2012

Я думаю, что ваша Hibernate-сессия "отключена". Я сталкивался с подобной ошибкой в ​​прошлом, но не помню, как я ее разрешил ...: (

Для планирования задач вы можете использовать кварцевый плагин , который достаточно стабилен, я уже давно использую его в производстве. Взгляните на исходный код плагина Executor , который связан с связыванием сеансов гибернации с несколькими потоками, хотя это может не решить вашу проблему, но может дать вам подсказку, как ее решить.

...