[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Приостановить выполнение скрипта
SnowWind
Привет ребята, подскажите как мне притормозить выполнение скрипта php?

суть такая, получаю заголовки, проверяю статус, если 200 то едем дальше, а если нет, то нужно притормозить минут на 5-10 и опять попробовать
sleep() тут не подходит
Игорь_Vasinsky
Цитата
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
ну если я заторможу на 5 мин, то нужно изменять настройки время ожидания скрипта на сервере в php, как я понимаю, а этого я сделать не могу
vagrand
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
я же сказал не могу )
у меня обычный хостинг
SnowWind
думал может как-то по другому можно, слышал что-то про cron но что и как не знаю
vagrand
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
так а если делать при помощи sleep() я не знаю сколько времени потребуется, что бы получить ответ 200, может быть целый день или 5 минут сколько время ожидания ответа поставить?
12 часов? Это нормально?
vagrand
Это чего же вы такое парсите шо аж 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
там сервер не стабильный, часто не работает, вот и ждать приходится долго.
так это нормально, устанавливать время ожидания выполнения скрипта 12ч?
или это неправильно?
м.б уязвимость есть какая-то?
или нагрузка на сервер?
exotica
а зачем аж 12 часов то?, даже если сервер не стабильный, то от этого только возрастет вероятность попасть в промежуток его выключения.

задай 10-20 минут. Но опять же смотря сколько времени потребуется скрипту парсеру в случае если сервер включен. Логично будет запускать таймер только после окончания работы скрипта или его остановки

Ну и хорошо пусть будет километровый запас задай каждые 30 минут.

и как сказано выше если сервер не возвращает нужный заголовок, просто убивай скрипт, и спустя 30 минут пробуй снова. Если сервер работает, то включай парсер - жди окончания его работы и включай таймер

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Xes
Я бы сделал так. Хотя толком не понял задачи )).
Поставил бы в КРОН задачу на выполнние php скрипта каждые 3-5минут.
Скрип 1.php читает из текстового файла status.txt состояние предыдущей работы скрипта и время предыдущего запуска.
Если время предыдущего запуска более 12 часов то не зависимо от статуса начинаем парсить, и пишем результат (статус) в файл status.txt.

Если все Ок пишем время последнего запуска и статус - Ок.
Если был косяк то пишем время запуска и статус КОСЯК.

Через следующие 5 минут если был косяк значит повторяем попытку, пока не добъемся статуса Ок.
Если добились статуса ОК, то вследующий раз смотрим на статус Ок и если прошло более 12 часов то запускам скрипт снова.
redreem
а я бы сей "ожидательный" момент отдал клиенту.
1. шлется запрос
2. если "работать можно" - работаем
3. если нет - на js пытаемся связаться через "заданное заранее" время.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.