繁体   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