[英]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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.