我一直在研究这部剧!框架,我有兴趣将我的一个项目转换为它。但是,该项目要求根据用户操作生成长时间运行的线程,但线程的结果不会通过正常的请求响应方法返回给用户。相反,用户会被重定向到一个监视他们已启动的线程的页面。
所以,我想知道如何创建一个用户操作,每当用户 POST 到/start 时创建一个线程,但该线程会自动进入“后台”并且用户收到诸如“ok”或甚至是重定向,而不是线程的输出。
我还想对线程进行某种程度的控制;换句话说,我不想只是创建一个线程并让它运行。我想要某种全局引用点,以便用户可以在线程启动后停止该线程(例如通过访问/stop)。
最佳答案
Play 提供了特殊的 Job,可以定期在后台运行或在应用程序启动时运行,但我认为它不适合您。
在您的情况下,您可以简单地生成新的Thread
或使用Java API向Executor
提交新任务并向用户返回响应。要停止Thread
,您可以使用带有循环和中断标志的标准方法。这里的 play 框架没有什么特别的,只是普通的 java api。
关于java - 如何通过 Play! 中的请求启动后台线程!框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13026587/