我正在为少数用户编写一个小型Grails应用程序(最多10个)。它将托管在Heroku免费托管(1 dyno = 512 MB RAM)。
应用程序将有一个用户表单,在提交时将触发在控制器中生成线程的Ajax请求。(通过preventDefault()阻止默认提交操作,因为任务耗时且Heroku的超时大约为30秒)。
例如,线程从外部api / url获取项目列表,控制器将具有实例变量,例如itemFetched
。用户表单的网页将包含一个进度窗口小部件,它会定期显示此itemFetched
的值。
usera
启动一个帖子,当它在后台运行时,用户在离开该页面时会看到itemFetched
的状态并再次点击该网址。
如何为每位用户创建一个"" controller(只要通过Ajax线程生成的线程正在运行),而不是每个HTTP请求(即原型范围)?
答案 0 :(得分:1)
在这种特殊情况下,会话范围服务将是一个完美的选择。您可以在documentation。
中详细了解相关信息通过使您的服务会话作用域,每个HTTP会话将拥有它自己的服务实例,您可以在给定会话中的请求之间维护状态。