parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 30.08.2011 17:28

вы работаете с ограниченными ресурсами.
делаете заведомо долгую работу.
в этом случае запросто можете не вписаться в имеющиеся ресурсы (процессорное время, память и timeout браузера).

например вчера сервер был не нагружен, поэтому sql скрит загрузился на 2.5 мин, и браузер дождался ответа.

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

пользователь от таких неопределённостей ни фига не счастлив (нет ничего хуже, когда система то работает, то -- нет). к тому-же ему придётся повторно качать на сервер большой файл (а каналы бывают несимметричные + медленные, т.е. upload больших файлов может быть не в радость).

если подумать заранее и сразу сделать как следует, то как раз пользователь страдать не будет.

например:
файл загрузился, вы его записали, поставили нужные флаги для cron-а и пользователю в окошке написали, что обработка начнётся через 3 мин. 40 сек (вам известно когда запускается скрипт обработки из крона, т.е. можете посчитать).
заодно браузеру отдали указание сделать refresh через эти самые 3:40
пройдёт это время -- браузер сам обновит страницу и пользователь увидит сообщение, что данные загружаются (или распаковываются, ведь вы из sh-скрипта тоже можете выставлять флаги текущего состояния).
очередной авто-рефреш через 30 сек -- и довольный пользователь видит или "данные загружаются" или "данные успешно загружены".

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