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     
已邀请:
我相信这是预期的。 查询正在异步运行在不同的线程中,但是当调用
it.get()
时(在与运行主脚本相同的线程中),
{ return Thread.currentThread().name }
闭包运行 希望这能解释它 编辑 你是对的。 跑步
def http = new AsyncHTTPBuilder( poolsize:5,
                                 uri:'http://ajax.googleapis.com/ajax/services/search/web' )
不能按预期工作......并将其更改为:
def http = new AsyncHTTPBuilder( threadPool:java.util.concurrent.Executors.newFixedThreadPool( 5 ),
                                 uri:'http://ajax.googleapis.com/ajax/services/search/web' )
使它工作。甚至尝试过使用0.5.2-SNAPSHOT,但也遇到了同样的问题 我把它报告为一个错误:http://jira.codehaus.org/browse/GMOD-174 越过它的手指将通过v 0.5.2得到修复(或者我们将找出我们做错的原因)     
我修复了这个bug并部署了一个新的0.5.2-SNAPSHOT。因此它现在可以使用最新的快照。 我打算用这个修复版本发布0.5.2 final,并很快修复其他一些bug。 对于记录,命名参数实际上是
poolSize
而不是
poolsize
但这不是问题的原因。 (但这是我打算在0.5.2中修复的内容 - http://jira.codehaus.org/browse/GMOD-175。) 感谢Tim Yates报告错误。     

要回复问题请先登录注册