2

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

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

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

4

2 回答 2

2

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

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

于 2012-10-23T08:51:02.137 回答
2

我不会产生新Thread实例,而是使用Actor实例。它们是用于在后台执行非阻塞任务的更简单和健壮的模型。

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

于 2012-10-25T11:35:45.873 回答