我有一個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