У меня есть скрипт perl, который проверяет базу данных для внутренних запросов на вызов API.Каков наилучший способ подключения к нескольким URL-адресам одновременно с perl
Когда он видит один, он использует 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);
}
}
Я не возражаю, если ответ не зарегистрирован, или (предпочтительно), если он регистрируется отдельно.
Это выглядит интересно, но я не уверен, что это поможет здесь. Например, если я получил 4 запроса в цикле 1 и запрос №1 занял 5 минут, то все равно за 5 минут до начала цикла 2, поэтому, если другой запрос был введен сразу после вызова кода в '$ pua-> wait', это все равно будет застревать до тех пор, пока не будут выполнены текущие 4 запроса. –