【问题标题】:Jetty 7 Continuations: How to *not* redispatch the request?Jetty 7 Continuations:如何*不*重新发送请求?
【发布时间】:2010-03-20 04:31:23
【问题描述】:
我正在使用 Jetty 7 延续来实现一些异步处理。我正在尝试做的是开始延续(通过.suspend()),然后将延续交给将组成响应的其他对象,这很好。但是 Jetty 不断将响应(isInitial = false)重新分派给 servlet,我不希望或不需要这样,因为响应正在由其他对象处理。
所以,我想找到一种方法来显式不在超时或过期时重新调度请求,因为我正在使用事件驱动的一系列回调来实际产生响应。
【问题讨论】:
标签:
java
asynchronous
jetty
【解决方案1】:
查看continuation.isInitial() 周围的文档 - 来自http://wiki.eclipse.org/Jetty/Feature/Continuations:
恢复请求
一旦异步事件发生
发生,可以继续
继续:
void myAsyncCallback(Object results)
{
continuation.setAttribute("results",results);
continuation.resume();
}
当继续进行时,
请求被重新分派到 servlet
容器,几乎就像请求
又收到了。然而
在重新调度期间,
continuation.isInitial() 方法
返回 false 和任何属性集
由异步处理程序是
可用。