我正在爲少量用戶編寫一個小型的Grails應用程序(最多10個)。它將託管在Heroku免費託管(1 dyno = 512 MB RAM)。Grails中Ajax請求的單用戶控制器實例?
該應用程序將有一個用戶表單,該表單在提交時會觸發一個Ajax請求,該請求會在控制器中產生一個線程(默認提交動作是通過preventDefault()來阻止的,因爲任務非常耗時,Heroku的超時約30秒)。
例如,線程從外部api/url獲取項目列表,控制器將有一個實例變量say itemFetched
。用戶表單的網頁將包含一個進度小部件,它將定期顯示此itemFetched
的值。
usera
啓動一個線程,當它在後臺運行時,用戶在離開該頁面並再次點擊該url時將看到itemFetched
的狀態。
如何創建一個「每用戶」控制器(只要線程通過Ajax線程產生),而不是每個HTTP請求(即原型範圍)?
您是否考慮過使用會話作用域服務?這將允許每個http會話的服務實例。幾乎你要找的東西。 – 2015-04-01 01:31:13
@JoshuaMoore我認爲如果用戶離開頁面並且再次回來,會話範圍服務將不起作用,因爲它會啓動一個新的「會話」。 – rahulserver 2015-04-01 01:33:19
不,這正是會話的目的 - 維護請求之間的狀態。 – 2015-04-01 02:37:18