Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Длительное перекачивание данных. Вылетаем по timeout 
:(
    Опции темы
ShurikA
Дата 28.11.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Такая проблемма: 
У нас в процессе update-а скачиваются фаилы через FTP.
Время от времени эта процедура занимает много времени и мы соответственно вылетаем по timeout-у.
Каким обазом можно запустить этот процесс независимо от HTTP запроса? (естественно потом нужно будет мониторить когда он закончится, но это уже другая задача)?

Или же есть другие предложения...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
solenko
Дата 28.11.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



ShurikA, cron. 
По приходу http запроса ставим статус "в очереди", по старту cron скрипта выбираем поочередно все что в очереди, выставляем статус "в обработке" и запускаем обработку. По завершению обработки итема -- статус "готово"


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 28.11.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



solenko, 
Элегантно smile 
Имеется в виду каждий раз создавать и убивать cron или просто запускать тотже самый? (я, если честно, никгда с cron-ом не работал)

Если не сложно, можно короткий пример?

Добавлено через 8 минут и 57 секунд
А не стоит ли просто прогнать PHP скрипт с командной строки? (кодом конечно)


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
solenko
Дата 28.11.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



ShurikA, cron -- системный демон, который просто выполняет команда по расписанию. В вашем случае это просто php cronscript.php, который запускается, например, раз в 10 минут.
Ну а в cornscript.php мы просто выбираем опреации из очереди (база, файл -- по вкусу) и, те которые еще не выполнены выполняем.
Пример кода приводить бессмысленно.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 28.11.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



solenko, 
Но его не нужно запускать раз в 10 минут, а только тогда когда нужно. То есть сам cron нужно созадавать из PHP кода. Каким образом это делается?


Цитата(solenko @  28.11.2008,  09:48 Найти цитируемый пост)
те которые еще не выполнены выполняем.

Такой подход прекрасен для массовой рассылки, на пример. Но никак не для перегона фаилов с одного сервера на другой при этом показывая статус пользователю.

Может я просто не правильно объяснился...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 28.11.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



solenko, Осталось только убедить хостера что крон есть и скрипты , запускаемые кроном имеют право жить больше 30 секунд smile 
Впрочем для крона и перекачки по ftp можно обойтись и без php.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ShurikA
Дата 28.11.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(ksnk @  28.11.2008,  10:01 Найти цитируемый пост)
Впрочем для крона и перекачки по ftp можно обойтись и без php. 

Ну вот этого не хотелось бы.

Добавлено через 1 минуту и 17 секунд
Цитата(ksnk @  28.11.2008,  10:01 Найти цитируемый пост)
скрипты , запускаемые кроном имеют право жить больше 30 секунд 

Так у этих сцриптов, вроде как, нету timeout-a by default.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 28.11.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



ShurikA, 
А зачем для передачи по ftp обязательно php? cron'у вообще говоря без разницы, запускать скрипт или wget/wput... В шеле тоже можно неслабую логику наворотить smile

Цитата

Так у этих сцриптов, вроде как, нету timeout-a by default.

Все зависит от настроения хостера. Редкому хостеру приходится вычищать машину от висящих php-демонов более 3-х раз smile Хотя бывает, наверное,  и такое. 

Проверять надо.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ShurikA
Дата 28.11.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(ksnk @  28.11.2008,  10:42 Найти цитируемый пост)
Все зависит от настроения хостера. 

Так в этом всё и дело, не для себя пишу же smile

Как запустить скрипт в шеле и не дожидаясь ответа продолжить дальже?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 28.11.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



ShurikA, Дык этта... Про Крон-же говорим smile для php можно почитать комментарии.

Для крона нужно состряпать шеловский скрипт со следующей сутью - если есть файл exec.me - запускаем его на выполнение, результат складываем в лог. после выполнения - убиваем файл.
Вот этот скриптик можно в кроне запускать хоть даже раз в минуту.

exec.me можно сочинить php'ой. Навставлять туда команд прекачки туда-сюда по ftp, а потом - запуск скрипта обработки всего этого добра.




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ShurikA
Дата 28.11.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



ksnk, 
Так если есть возможность запускать и продолжать, зачем cron создавать? Запустили:
Код

popen("php job.php");


и поехали дальше...

Добавлено через 5 минут и 23 секунды
или наверное правильнее будет через proc_open.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
nerezus
Дата 28.11.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

Так в этом всё и дело, не для себя пишу же
 Ну так тогда и не должно у ТЕБЯ быть проблем с хостером - это будет проблема ЗАКАЗЧИКА. Намекни ему на VDS/DS, благо стоят они гораздо меньше услуг программиста.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
ShurikA
Дата 28.11.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(nerezus @  28.11.2008,  13:08 Найти цитируемый пост)
это будет проблема ЗАКАЗЧИКА.

Мне самому тоже интересно smile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 28.11.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



ShurikA, На многих хостерах закрыты функции popen, system и т.д. Так что cron может быть спасением...

Это сообщение отредактировал(а) ksnk - 28.11.2008, 14:27


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nerezus
Дата 29.11.2008, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

Мне самому тоже интересно
 Для себя правильнее выбрать нормальный хостинг заранее просто ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.