10 grails asynchronous servlets quartz-scheduler
假设我有一个这样的简单控制器:
class FooController {
  def index = {
     someVeryLongCompution() //e.g crawl a set of web pages
     render "Long computation was launched."
  }
}
当调用索引操作时,我希望该方法在异步运行长计算时立即返回给用户.
我理解最有效的方法是在架构中使用消息代理,但我想知道是否有更简单的方法来实现它.
我尝试了Executor插件,但阻止了http请求返回,直到长计算完成.
我尝试过Quartz插件,但这似乎对周期性任务有好处(除非有办法只运行一次作业?)
你们是如何在Grails中处理这些请求的呢?
您想在同一个Grails服务器或其他服务器上处理veryLongComputation()的位置?
如果是同一台服务器,则不需要JMS,另一种选择是创建一个新线程并异步处理计算.
def index = {
     def asyncProcess = new Thread({
          someVeryLongComputation()
     } as Runnable )
     asyncProcess.start()
     render "Long computation was launched."
  }
| 归档时间: | 
 | 
| 查看次数: | 4426 次 | 
| 最近记录: |