簡體   English   中英

如何在Play中通過請求啟動后台線程! 框架?

[英]How do I start a background thread with a request in the Play! framework?

我一直在尋找Play! 框架,我對將我的項目之一轉換成它感興趣。 但是,此項目要求在用戶操作時生成長時間運行的線程,但是線程的結果不會通過常規的請求-響應方法返回給用戶。 而是將用戶重定向到一個頁面,該頁面監視他們已啟動的線程。

因此,我想知道如何創建一個用戶操作,該操作將在用戶POST到/ start時創建一個線程,但是該線程自動進入“后台”,並且用戶收到諸如“ ok”甚至重定向的響應。 ,而不是線程的輸出。

我還希望對線程進行某種程度的控制; 換句話說,我不僅要創建一個線程並使其運行。 我想擁有某種全局參考點,以便用戶可以在線程啟動后停止它(例如,通過訪問/ stop)。

Play提供了特殊的Job,可以在后台定期運行或在應用程序啟動時運行,但我認為它不適合您。

在您的情況下,您可以簡單地使用Java API生成新的Thread或將新任務提交給Executor並將響應返回給用戶。 要停止Thread ,可以使用帶有循環和中斷標志的標准方法。 這里的play框架沒什么特別的,只有常規的Java api。

我不會產生新的Thread實例,而是使用Actor實例。 它們是用於在后台執行非阻塞任務的更簡單,更強大的模型。

有關詳細信息,請參閱PlayAkka文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM