确定Web服务器上是否有HTTP资源可用

问题描述 投票:0回答:2

我使用Glassfish v3来提供大型文件(glassfish也用于商业逻辑 - 仅供参考)我知道Glassfish与Grizzily网络服务器相关。我在同步模式下使用Grizzily。意思是,如果有100个线程,则只允许100次下载。其余的请求将排队。但是,我想为HTTP客户端设置503,由于缺少工作线程(最多100个)而无法提供服务。

  1. 当没有工作线程可用时,甚至允许请求排队
  2. 我如何知道工作线程何时耗尽?手动计数器?
  3. 我应该在代码(filter,servlet?)中设置错误代码以及重试头数据?
java multithreading servlets glassfish-3 grizzly
2个回答
1
投票

通常这些是容器特定的功能。您可以使用属性server.http-service.connection-pool.max-pending-count = 100配置请求队列大小。超过100的所有请求都将被拒绝。

有关更多信息,请参阅此处:

Glassfish tuning keepalive requests


0
投票

Servlet 3.0规范引入了对异步请求处理的支持,您可以利用它。您可以引入基于应用程序的线程池并在那里处理持久性任务,这样您就可以完全控制线程池大小,并在线程池达到某个限制后采取适当的操作。

© www.soinside.com 2019 - 2024. All rights reserved.