我有一个perl脚本来检查数据库是否有内部API调用请求。什么是与perl同时连接多个URL的最佳方式
当它看到一个,它使用LWP根据请求调用API。
问题是,有时这些请求可能需要一段时间才能完成,而其他请求在它们后面排队。我正在设法制定防止这种情况的最佳方法。
该脚本相对简单。我简要地看了一下POE和AnyEvent,但一直没能找到任何帮助我理解在这种情况下如何使用它们的教程。看起来他们主要是为了更复杂的情况而设计的。
在简化的,我的半伪代码是:
while (1) {
$url=getNextRequestFromDB();
if ($url ne "") {
$request = new HTTP::Request('GET', $url);
my $response = $ua->request($request);
logResponse($response);
}
else {
sleep(5);
}
}
如果响应没有登录,或者如果它被单独地记录(优选地)我不介意。
这看起来很有趣,但我不确定它会对此有所帮助。例如,如果我在循环1中获得了4个请求,并且请求#1花了5分钟,那么在循环2启动之前还有5分钟,因此如果在代码调用'$ pua-> wait'之后进入另一个请求,它在当前的4个请求完成之前仍然会卡住。 – 2014-09-04 17:56:37