我使用Glassfish v3来提供大型文件(glassfish也用于商业逻辑 - 仅供参考)我知道Glassfish与Grizzily网络服务器相关。我在同步模式下使用Grizzily。意思是,如果有100个线程,则只允许100次下载。其余的请求将排队。但是,我想为HTTP客户端设置503,由于缺少工作线程(最多100个)而无法提供服务。
题
通常这些是容器特定的功能。您可以使用属性server.http-service.connection-pool.max-pending-count = 100
配置请求队列大小。超过100的所有请求都将被拒绝。
有关更多信息,请参阅此处:
Servlet 3.0规范引入了对异步请求处理的支持,您可以利用它。您可以引入基于应用程序的线程池并在那里处理持久性任务,这样您就可以完全控制线程池大小,并在线程池达到某个限制后采取适当的操作。