Tag: continuations

播放持有http线程的延续

我们在我们的网络应用程序中实现了一项function,通过使用Play的延续来更新GUI以响应服务器中的新事件,就像聊天应用程序一样。 在生产中运行一段时间之后,我们开始体验服务器挂起,更具体地说,我们的Glassfish服务器的http连接器停止接受新请求。 线程转储向我们显示来自http线程池的所有http线程都在等待调用Play Promises。 我们的线程池有5个线程(默认编号),这意味着有5个客户端等待通知,并且服务器无法接受更多的http连接,除非某些实际客户端关闭其连接。 根据Play的文档关于继续/请求暂停,当通过调用await()暂停请求时,应该释放请求的线程。 这不是这里发生的事情。 参考: http : //www.playframework.org/documentation/1.2.3/asynchronous 我对Play的源代码做了一些研究,找不到任何提示。 我的代码似乎还可以,但我不确定(见下文)。 我希望有人可能会指出我可能做错了什么。 版本: Play 1.2.3 Glassfish 3.1.1 源代码: public class Sessions extends Controller { public static void waitFor(Query query, long lastSessionId, List openSessionIds) { String clientId = request.remoteAddress; List sessions = query .with(new UpdatedSessions(lastSessionId, openSessionIds)) .execute(); Logger.info(“%s -> Updated sessions since %s + […]