Perl AnyEvent-HTTP идентифицировать callback
Доброго времени суток уважаемое сообщество !
возникла необходимость проверять на доступность несколько тысяч url, решил использовать для этого AnyEvent::HTTP как наиболее быстрый, на мой взгляд
делаю стандартно в цикле запрос http_head (по 100 за раз)
my $cv = AnyEvent->condvar();
my $guard;
$guard = http_head($url, timeout => 1, sub {
undef $guard;
my $header = $_[1];
if($header->{'Status'} =~ /^2/){
print "Status: OK\n";
}
else{
$log->info("Status: Error, $header->{'Reason'}");
}
if($max_request == $y){
$cv->send("done");
}
});
my $result = $cv->recv();
это всё дело как-бы работает, и довольно шустро но проблема в чём, не могу из callback определить к какой url он принадлежит, ведь url http_head($url ... и $header->{'URL'} это вовсе не всегда 1но и то-же а при возникновении ошибки (перенаправление, недостпность что-то ещё) мне нужно потом сообщить что такой-то url с таким-то id недоступен
пробовал ввести id для url (точнее они и так есть в БД где хранятся url) но тоже не получилось, ибо callback-и выполняются в произвольном порядке
подскажите если не трудно есть ли какой-то способ из callback выяснить какой http_head($url ... его вызвал ?