From: Greg W. <gr...@mo...> - 2006-03-29 19:07:13
|
Tim Vernum wrote: > My idea was to place some sort of constraint so that only a limited > number of requests would be accepted (simultaneously) for URLs which > matched certain patterns. This sounds like a job for Jetty 6 Continuations! You can have a handler and/or filter that counts how many requests are in the throttled resources. If a request comes in that put you over the limit, get the continuation, put it on a queue and then suspend. When a request leaves the handler and/or filter it will check to see if there are any waiting continuations and resume the first one in the queue. The requests that are waiting, have their thread freed and their stacks wound back to the connector... so they are minimal resources. By not responding to the client, you are putting back pressure out so that the client wont send another request. I think this filter/handler would be a cool feature to have and a great example of why continuations are cool! > * Split the handler dispatching out of the Server class so that a > Server "has-a" HandlerCollection rather than "is-a" HandlerCollection. > That would include moving the context map into a separate class. In this > case I would feel more comfortable replacing the default handler > collection with mine. This is potentially not a bad idea anyway. It could just be that the default top level handler is a ContextHandlerCollection, which has the context map (which is only an optimization anyway). cheers |