[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Долгий скрипт
tazododu
Всем привет!

Имеется скрипт парсинга XML Яндексмаркета, парсится быстренько, инфу в бд полученную вставляет тоже. После выполнения этих действия для каждой позиции происходит загрузка картинок, наложение ватермарка, их уменьшение и сохранение на сервере амазона 3х версий (различных размеров) картинок.

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

В результате чего может блокироваться доступ к сайту в определенном браузере во время выполнения скрипта.

Почему так происходит? Что можно сделать чтобы этого избежать? blink.gif



Спустя 4 минуты, 40 секунд (5.10.2011 - 16:30) tazododu написал(а):
Заметил, что время генерации страницы во время выполнения парсинга в соседней вкладке браузера нормальное. Такое ощущение, что происходит задержка (которая исчисляется минутами) при отдачи ответа сервером браузеру...

Спустя 2 минуты, 52 секунды (5.10.2011 - 16:33) kristall написал(а):
У браузеров есть ограничение по общему числу подключений и числу подключений на один сайт. В Опере эти параметры настраиваются пользователем, наверное, подобные настройки есть в Хроме и Фоксе.

Спустя 3 минуты, 57 секунд (5.10.2011 - 16:37) imbalance_hero написал(а):
tazododu
Вчера с таким же столкнулся, интересен ответ smile.gif
У меня была рассылка, я её повесил задним планом на крон, то есть данные добавились в БД, а крон уже на заднем фоне выполняет всю работу, человеку лишь вывелось, что рассылка была сделана, хотя по факту сделана она будет минут через 15, когда крон запустится.
Может стоит и обработки картинок тоже повесить на крон, или на отдельный скрипт, который можно будет там аяксом дёрнуть, допустим, но ответ от сервера не ждать.

Спустя 10 минут, 27 секунд (5.10.2011 - 16:47) tazododu написал(а):
Цитата (imbalance_hero @ 5.10.2011 - 13:37)
tazododu
Может стоит и обработки картинок тоже повесить на крон, или на отдельный скрипт, который можно будет там аяксом дёрнуть, допустим, но ответ от сервера не ждать.

я как раз так и реализовал, у меня все аяксом делается.
пользователь получает такие сообщения:
1. Ожидайте загрузку данных
2. Товары загружены, сейчас к товарам производится загрузка картинок. Пока вы можете их посмотреть в админке
3. Все загружено.

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

Спустя 1 час, 8 минут, 17 секунд (5.10.2011 - 17:56) tazododu написал(а):
Нашел такой вариант:
exec("file.php > /dev/null &");

только ничерта он не работает:(

Спустя 8 минут, 24 секунды (5.10.2011 - 18:04) imbalance_hero написал(а):
tazododu
Видимо хостер не поддерживает вызов exec у тебя. Поэтому вешай на крон. Раз в "сколько минут" тебе выбирать от нагруженности проекта. Я бы поставил 1-5 минут, и все было бы норм.

Спустя 21 час, 25 минут, 9 секунд (6.10.2011 - 15:29) Dalin написал(а):
exec("file.php > /dev/null &");


скорее всего путь к интерпретатору php не указан в переменных окружения, но запускать доп. процесс для этого по моему накладно будет

Спустя 1 час, 10 минут, 10 секунд (6.10.2011 - 16:39) tazododu написал(а):
кстати, пробовал через
exec(wget .... 
все равно ждет ответа сервера, хотя и выполняет. сейчас вот закатил рукава, попробую через сокеты запустить скрипт.

Спустя 4 минуты, 29 секунд (6.10.2011 - 16:44) tazododu написал(а):
Цитата (Dalin @ 6.10.2011 - 12:29)
процесс для этого по моему накладно будет

в том то и дело, хочется запустить отдельный процесс. чтобы человек смог продолжить работу с сайтом, а не ждал сидел пока чета там произойдет
Быстрый ответ:

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