Groovy的AsyncHTTPBuilder不会异步执行请求
我正在使用AsyncHTTPBuilder(v0.5.1)但是,我不能让它工作,所以它是异步执行请求。请检查下面的代码。看起来所有请求都是从同一个线程完成的:
@Test public void testPoolsizeAndQueueing() {
def http = new AsyncHTTPBuilder( poolSize : 5 ,
uri : 'http://ajax.googleapis.com/ajax/services/search/web' )
def responses = []
/* With one thread in the pool, responses will be sequential but should
* queue up w/o being rejected. */
10.times {
responses << http.get( query : [q:'Groovy', v:'1.0'] ) { return Thread.currentThread().name }
responses << http.get( query : [q:'Ruby', v:'1.0'] ) { return Thread.currentThread().name }
responses << http.get( query : [q:'Scala', v:'1.0'] ) { return Thread.currentThread().name }
}
def timeout = 60000
def time = 0
while ( true ) {
if ( responses.every{ it.done ? it.get() : 0 } ) break
print '.'
Thread.sleep 2000
time += 2000
if ( time > timeout ) assert false
}
responses.each { println it.get() }
http.shutdown()
}
输出:
..pool -3-线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
池3线程1
没有找到相关结果
已邀请:
2 个回复
骚瓤
时(在与运行主脚本相同的线程中),
闭包运行 希望这能解释它 编辑 你是对的。 跑步
不能按预期工作......并将其更改为:
使它工作。甚至尝试过使用0.5.2-SNAPSHOT,但也遇到了同样的问题 我把它报告为一个错误:http://jira.codehaus.org/browse/GMOD-174 越过它的手指将通过v 0.5.2得到修复(或者我们将找出我们做错的原因)
蔬谢窗港
而不是
但这不是问题的原因。 (但这是我打算在0.5.2中修复的内容 - http://jira.codehaus.org/browse/GMOD-175。) 感谢Tim Yates报告错误。