如何在Play中启动带有请求的后台线程!框架?

时间:2012-10-23 08:44:03

标签: java playframework playframework-2.0

我一直在看戏剧!框架,我有兴趣将我的一个项目转换为它。但是,此项目要求在用户操作时生成长时间运行的线程,但线程的结果不会通过正常的请求 - 响应方法返回给用户。相反,用户被重定向到监视他们已经开始的线程的页面。

所以,我想知道如何创建用户操作,每当用户POST到/ start时创建一个线程,但线程自动进入“后台”并且用户收到诸如“ok”之类的响应或甚至是重定向,而不是线程的输出。

我也希望对线程有一定程度的控制;换句话说,我不只是想创建一个线程并让它运行。我希望有一些全局参考点,以便用户可以在线程启动后停止(例如通过访问/停止)。

2 个答案:

答案 0 :(得分:2)

Play提供特殊的Job,可以定期或在应用程序启动时在后台运行,但我认为它不适合你。

在您的情况下,您可以使用Java API简单地生成新的Thread或向Executor提交新任务并将响应返回给用户。对于停止Thread,您可以使用循环和中断标志的标准方法。这里没有什么特别的游戏框架,只是常规的java api。

答案 1 :(得分:1)

我不会生成新的Thread个实例,而是使用Actor个实例。它们是一种更简单,更健壮的模型,可以在后台执行非阻塞任务。

有关详细信息,请参阅PlayAkka文档。