SnowWind
28.10.2013 - 15:49
Привет ребята, подскажите как мне притормозить выполнение скрипта php?
суть такая, получаю заголовки, проверяю статус, если 200 то едем дальше, а если нет, то нужно притормозить минут на 5-10 и опять попробовать
sleep() тут не подходит
Игорь_Vasinsky
28.10.2013 - 15:57
Цитата |
sleep() тут не подходит |
пардон, а больше не чем)
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
SnowWind
28.10.2013 - 16:15
ну если я заторможу на 5 мин, то нужно изменять настройки время ожидания скрипта на сервере в php, как я понимаю, а этого я сделать не могу
vagrand
28.10.2013 - 16:21
SnowWind
Цитата |
ну если я заторможу на 5 мин, то нужно изменять настройки время ожидания скрипта на сервере в php, как я понимаю, а этого я сделать не могу |
Если у вас vds, выделенный или собственный сервер то можете.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
SnowWind
28.10.2013 - 16:25
я же сказал не могу )
у меня обычный хостинг
SnowWind
28.10.2013 - 16:26
думал может как-то по другому можно, слышал что-то про cron но что и как не знаю
vagrand
28.10.2013 - 16:27
SnowWind
В таком случае варианта два%
1. Если есть доступ в контрольной панели к крон задачам - то ставьте ваш скрипт на крон (скажем каждые 5 минут, ну или сколько вам там нужно) и если при парсинге он обнаруживает не 200 код, то пусть просто умирает.
2. Берите vds, дедик или ставьте свой сервер на колокейшен.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
SnowWind
28.10.2013 - 17:43
так а если делать при помощи sleep() я не знаю сколько времени потребуется, что бы получить ответ 200, может быть целый день или 5 минут сколько время ожидания ответа поставить?
12 часов? Это нормально?
vagrand
28.10.2013 - 18:38
Это чего же вы такое парсите шо аж 12 часов ждать собрались?
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
SnowWind
29.10.2013 - 06:31
там сервер не стабильный, часто не работает, вот и ждать приходится долго.
так это нормально, устанавливать время ожидания выполнения скрипта 12ч?
или это неправильно?
м.б уязвимость есть какая-то?
или нагрузка на сервер?
exotica
29.10.2013 - 06:43
а зачем аж 12 часов то?, даже если сервер не стабильный, то от этого только возрастет вероятность попасть в промежуток его выключения.
задай 10-20 минут. Но опять же смотря сколько времени потребуется
скрипту парсеру в случае если сервер включен. Логично будет запускать таймер только после окончания работы
скрипта или его остановки
Ну и хорошо пусть будет километровый запас задай каждые 30 минут.
и как сказано выше если сервер не возвращает нужный заголовок, просто убивай
скрипт, и спустя 30 минут пробуй снова. Если сервер работает, то включай парсер - жди окончания его работы и включай таймер
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Я бы сделал так. Хотя толком не понял задачи )).
Поставил бы в КРОН задачу на выполнние php скрипта каждые 3-5минут.
Скрип 1.php читает из текстового файла status.txt состояние предыдущей работы скрипта и время предыдущего запуска.
Если время предыдущего запуска более 12 часов то не зависимо от статуса начинаем парсить, и пишем результат (статус) в файл status.txt.
Если все Ок пишем время последнего запуска и статус - Ок.
Если был косяк то пишем время запуска и статус КОСЯК.
Через следующие 5 минут если был косяк значит повторяем попытку, пока не добъемся статуса Ок.
Если добились статуса ОК, то вследующий раз смотрим на статус Ок и если прошло более 12 часов то запускам скрипт снова.
redreem
29.10.2013 - 13:00
а я бы сей "ожидательный" момент отдал клиенту.
1. шлется запрос
2. если "работать можно" - работаем
3. если нет - на js пытаемся связаться через "заданное заранее" время.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.