iamlime

iamlime
Рейтинг
2
Регистрация
29.05.2009

А лучше nohup file.sh

exponial:
автосерфинг пашет ))))))))))))))))

Да какой автосерфинг :) Поливают доры ифреймовым трафом, накручивая уники. Или ботнетами.

О котах... сорри, не удержался :)

Можно реализовать это через неблокируемые сокеты.

Вкратце: скрипт через сокет открывает урл (другой скрипт), не дожидаясь ответа (неблокируемый сокет), откывает его снова. Псевдомногопоточность.

Вот пример



$host='domain.ru'; // наш хост
$max_threads = 10; // максимальное количество потоков
$threads = array(); // тут будем держать открытые потоки
$done = false;

while(!$done) {
// если количество запущенных потоков меньше максимального
if(count($threads) < $max_threads) {

// открываем сокет и формируем заголовок
$socket = fsockopen($host, 80);
//script.php - скрипт который выполняет задачу
$url="http://".$host."/script.php?parametr=value"; //GETом передаем параметры
fputs($socket, "GET $url HTTP/1.0\r\n");
fputs($socket, "Host: $host\r\n");
fputs($socket, "\r\n");
stream_set_blocking($socket, 0);
stream_set_timeout($socket, 3600);
// запоминаем запущенный сокет
$threads[] = $socket;
}

foreach ($threads as $key=>$socket) {
if(feof($socket)) {
// если поток отработал, убираем его
fclose($socket);
unset($threads[$key]);
} else {
echo fgets($socket, 1000); flush();
}
}
// делаем задержку иначе загрузка сервера приближается к 100%
sleep(1);
if (count($threads) == 0) $done = true;
}


Всего: 44