Forum Webscript.Ru
Программирование => PHP => Тема начата: stanlee от 13 Мая 2005, 22:14:43
-
Допустим у меня есть 1000 страниц
и каждую нужно проверить на предмет чего то
так вот допустим на проверку каждой страницы уходит 2 секунды
получается что общее время ~ 2000 сек ~ пол часа
так вот
в таком случае скрипт по идее не должен выполниться а вылетит ошибка что мол время допущенное в настройках превышено
ну и все такое
1. - как тогда выполняют такие долгие работы
2. во время работы возможно ли чтобы был как то счетчик процентов выполненной работы?
-
1. set_time_limit и ignore_user_abort.
2. пока идей нет!
-
stanlee:
1. - как тогда выполняют такие долгие работы
из командной строки, а не по http (имеется в виду вызов скрипта, который, конечно, все равно будет опрашивать другие страницы по http).
-
Croaker типо exec и все такое?
-
Типа
[croaker@hoster2 croaker]$ php script.php
-
а такие операции сильно сервак грузят?
можно что то сделать чтобы нагрузку снизить если она конечно высока будет :)
-
stanlee:
а такие операции сильно сервак грузят?
Какие такие? Мы ж не знаем, что у вас скрипт делает. А вообще самый лучший способ - проверить на практике.
-
ну яж писал берет по очереди страницу и проверяет на предмет нахождения в ней части нужного текста
я просто делаю каталог ссылок с проверкой + еще проверки по иц пр и прочим приблудам
так вот тут же чисто посмотрел страницу и дальше пошел - не сложные махинации
по идее :))
-
stanlee
Если писать аккуратно, то нагрузка большой не будет.
-
встречный вопрос :)
а вот если запустили проверку и она идет полчаса
допустим у нас многопользовательский уровень доступа
проверка идет
и человек заходит в админку и нажимает на запуск проверки - получается что запускается еще одна команда на тот же скрипт
так вот как можно заблокировать процесс запуска когда он уже идет?
-
stanlee
Ставить какой-нибудь глобальный флажок в начале процесса выполнения скрипта (файл, например, создать) и удалять флажок - в конце.
-
блин сталкнулся с такой проблемой
создал 2 скрипта
index.php
spider.php
так вот в первом у мня форма заполнения а во втором
сам паучок
при заполнении делаю
махинацию
$qwery = "?url=".urlencode($url);
exec("/usr/bin/php ".$DOCUMENT_ROOT."/cy/spider.php".$qwery, $return_data, $return_numerror);
и ничего
всмысле данные из формы не проходят почему то
говорит что не могет открыть скрипт и указывает скрипт с путем и со всеми данными после него
в чем проблема то
вроде по идее я их передаю а не идуть :(