Предложения по простым способам выполнения асинхронной обработки в Grails

Допустим, у меня есть простой контроллер вроде этого:

class FooController {

  def index = {
     someVeryLongCompution() //e.g crawl a set of web pages
     render "Long computation was launched."
  }
}

Когда вызывается действие index, я хочу, чтобы метод немедленно возвращался пользователю при асинхронном выполнении длинных вычислений.

Я понимаю наиболее надежный способ сделать это - использовать брокер сообщений в архитектуре, но мне было интересно, есть ли более простой способ сделать это.

Я попробовал плагин Executor, но он блокирует возврат HTTP-запроса до тех пор, пока вычисление выполнено.

Я попробовал плагин Quartz, но, похоже, он подходит для периодических задач (если нет способа выполнить задание только один раз?)

Как вы, ребята, обрабатываете такие запросы в Grails?

10
задан STW 7 August 2013 в 14:17
поделиться