Кто прочел название треда, наверняка подумали "нахрена этот очередной боян?". Так вот задачей было - разобраться с "Process Control support in PHP", т.е. научиться использовать не псевдомногопоточность (через крон, пул неблокирующих сокетов, etc), а нормальное создание процесса в стиле Unix.
Ограничения:
[#] под виндой работать не будет
[#] php нужно собирать с опцией --enable-pcntl
Фунционал:
[#] head запросы
[#] каждый поток открывает всего одно Keep-Alive соединение
[#] можно указать при каких кодах ответов путь будет считаться несуществующим.
[#] можно указать при каких значениях поля location путь будет считаться несуществующим.
[#] для каждого потока юзер-агент берется рандомно.
Пример работы (канал 2 мб/с, в базе было 99 юрлов, 5 потоков):
Links:
[#] http://ru2.php.net/manual/ru/intro.pcntl.php
[#] быдлокод в аттаче
ps: есть пока 1 бага/фича, с которой не разобрался. После завершения первого потока, скрипт отвязывается от терминала. Если кого-то это смущает, можно перенаправить вывод в файл.