Модераторы: 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   Вверх
ShurikA
Дата 29.11.2008, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Цитата(nerezus @  28.11.2008,  23:44 Найти цитируемый пост)
 Для себя правильнее выбрать нормальный хостинг заранее просто ;) 

У меня самого свой сервак.


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


Опытный
**


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

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



Цитата(ShurikA @  28.11.2008,  12:12 Найти цитируемый пост)
Так если есть возможность запускать и продолжать, зачем cron создавать? Запустили 
Код
 popen("php job.php"); 
и поехали дальше...

возможности запускать и продолжать нет, по-крайней мере я не нашел. Стандартные функции либо дожидаются завершения процесса либо не дают его оставить (правда есть еще pcntl, который по умолчанию отключен)
У меня была идея запустить bash-скрипт, который в фоне запускает процесс и говорит bash не завершать его при выходе из скрипта, но она не заработала smile да и извращение это
лучше всего, если есть возможность запуска команд, запустить скрипт через at
Код

echo php script.php | at now

еще есть set_time_limit, но он, как и запуск программ скорее всего отключен на хостинге
Код




Это сообщение отредактировал(а) youri - 30.11.2008, 16:58
PM   Вверх
nerezus
Дата 29.11.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата

У меня самого свой сервак
 Ну вот это я и имел ввиду. Свой сервак - самый правильный хостинг.


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


Бывалый
*


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

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



Кароче написанно много! Но я прочитав не понял как все же пользователь может скачивать файлы размер которых достаточной большой что бы скачивание длилось больше 10 минут например , как прописано в настройках хостера!
Cron решение, плохое решение! Существует ли решение лучше? Или если это единственное решение, то каким образом это должно происходить!
Пользователь начинает скачивание и через 10 минут запускается крон по моему это бред или же пользователь ждет 10 минут пока запустится крон это тоже бред, не верю что бы это было решением!
PM MAIL   Вверх
skyboy
Дата 7.12.2008, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



dark_religion, при чем тут пользователь? речь шла об управлении закачкой с одного сервера на другой по желанию администратора системы. 
PM MAIL   Вверх
dark_religion
Дата 7.12.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



skyboy,
Цитата

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


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

но вопрос по прежнему заключается в том как передать данные, и решения типо крона искать не стоит, так как на другом форуме я видел, что есть стандартное решение, как передать файлы которые передаются дольше 10 минут! И CRON туда явно никак не вписывается.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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