[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка множества файлов
kpoxo6op
Мне интересно, как решается проблема, возникающая, когда PHP-скрипт выполняет трудоёмкую операцию, занимающую, к примеру, 1 минуту или больше. Ведь в этом случае он прерывается из-за превышения максимального времени работы.

Приведу пример. Я в качестве тренировки пишу скрипт, экспортирующий данные из прайс-листов в формате Excel в базу данных MySQL. Прайсы очень объёмные, с десятью листами.

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

Допустим, я захочу, чтобы он считал последовательно сразу 15 прайс-листов из папки. Скрипту на это потребуется пара минут, и он вылетит по тайм-ауту.

Я, конечно, могу увелечить максимальное время исполнения в конфигурации PHP, считать файлы по одному, но всё же, какие существуют решения в подобных ситуациях?



Спустя 17 минут, 5 секунд (15.06.2010 - 11:47) waldicom написал(а):
А какие тут выходы? Улучшать скрипт. Выполнять сторонними средствами. Увеличивать время. Наверняка есть еще какие...

Спустя 32 минуты, 35 секунд (15.06.2010 - 12:20) tomash написал(а):
Сначала нужно ВСЕ достать из файлов, потом обработать, потом положить в БД

Спустя 1 час, 7 минут, 29 секунд (15.06.2010 - 13:27) FatCat написал(а):
На нормальных хостингах для долгих процессов использую "сет_таймлимит"; для уродских хостингов с урезанными лимитами делаю сохранения промежуточных результатов в базе или в файлах и авторефреши.

Спустя 3 минуты, 48 секунд (15.06.2010 - 13:31) tomash написал(а):
Еще можно вызывать скрипт для каждого файла

Спустя 6 минут, 7 секунд (15.06.2010 - 13:37) kpoxo6op написал(а):
Цитата (tomash @ 15.06.2010 - 10:31)
Еще можно вызывать скрипт для каждого файла

Объясните подробнее, что это значит?

Спустя 4 минуты, 32 секунды (15.06.2010 - 13:42) kpoxo6op написал(а):
Цитата (FatCat @ 15.06.2010 - 10:27)
На нормальных хостингах для долгих процессов использую "сет_таймлимит"; для уродских хостингов с урезанными лимитами делаю сохранения промежуточных результатов в базе или в файлах и авторефреши.

Как ставить авторефреш? Можете дать ссылку, сам почитаю...

Спустя 56 секунд (15.06.2010 - 13:43) tomash написал(а):
обрабатывать файлы по-очереди

Спустя 19 часов, 40 минут, 39 секунд (16.06.2010 - 09:23) kpoxo6op написал(а):
Цитата (tomash @ 15.06.2010 - 10:43)
обрабатывать файлы по-очереди

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

Спустя 24 минуты, 44 секунды (16.06.2010 - 09:48) tomash написал(а):
kpoxo6op
Вродь того.
Быстрый ответ:

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