Grails中Ajax请求的每个用户的单例控制器实例?

时间:2015-04-01 01:27:57

标签: ajax grails heroku

我正在为少数用户编写一个小型Grails应用程序(最多10个)。它将托管在Heroku免费托管(1 dyno = 512 MB RAM)。

应用程序将有一个用户表单,在提交时将触发在控制器中生成线程的Ajax请求。(通过preventDefault()阻止默认提交操作,因为任务耗时且Heroku的超时大约为30秒)。

例如,线程从外部api / url获取项目列表,控制器将具有实例变量,例如itemFetched。用户表单的网页将包含一个进度窗口小部件,它会定期显示此itemFetched的值。

usera启动一个帖子,当它在后台运行时,用户在离开该页面时会看到itemFetched的状态并再次点击该网址。

如何为每位用户创建一个"" controller(只要通过Ajax线程生成的线程正在运行),而不是每个HTTP请求(即原型范围)?

1 个答案:

答案 0 :(得分:1)

在这种特殊情况下,会话范围服务将是一个完美的选择。您可以在documentation

中详细了解相关信息

通过使您的服务会话作用域,每个HTTP会话将拥有它自己的服务实例,您可以在给定会话中的请求之间维护状态。