Страница 1 из 1

Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.11.29, 23:56
Ghost_nsk
день добрый
есть онлайн-магазин, люди подгружают на обновление прайс с количеством записей например >10K, по каждой записи >10 столбцов инфы
посоветуйте настройки или нестандартное решение задачи, чтобы сервак не подвисал :)

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.11.30, 00:01
samdark
Поставить в очередь, выполнять в фоне мелкими порциями.

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.11.30, 00:23
lancecoder
да, я тоже как то делал импортер с больших файлов, так вот проще его разбить сначала на маленькие выгрузить из памяти большой и маленькими порциями обрабатывать, в итоге много памяти вы займете всего 1 раз(на время разбивки), а не на весь период обработки (импорта)

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.11.30, 00:26
Ghost_nsk
а пример можно, например имеем файл 15 тыщ позиций, процедура какая:
1) сохраняем файл на серваке
2) разбиваем файл на маленькие файлы по 1000 позиций
3) обращаемся к этим файлам, запускаем скрипт обработки
типа такого?

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.11.30, 00:28
samdark
1) сохраняем файл на серваке сразу
2) по крону бьём на части в фоне
3) по другому крону обрабатываем то, что уже разбито

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.11.30, 06:14
Ghost_nsk
Sam Dark писал(а):1) сохраняем файл на серваке сразу
2) по крону бьём на части в фоне
3) по другому крону обрабатываем то, что уже разбито
круто спасибо) будем пробовать

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.12.04, 10:53
Koduc
Можно без крона - иногда делаю форму, которая автосабмитится.
На форме есть, например, счетчик, который указывает, какие записи обрабатывать.
Сабмитится форма, идет обработка порции данных, выдается новая форма с новым диапазоном для обработки, снова автоматически сабмитится и так далее (можно и через ajax). Но это придется заставить пользователя висеть на странице, пока идет обратока. Но в качестве плюшки - легко вешается прогресс-бар, показывающий процесс обработки.

Re: Кто как решает задачу выполнения огромных скриптов?

Добавлено: 2012.12.04, 12:01
shrekki
Эм.
У меня обновляется сайт каждые 15 минут.
30К изделий. Обновление через 8 файлов. Один из которых как раз таки с 30К изделиями.

Время выполнения от 30-65 секунд через ConsoleCommand. памяти кушает 45 метров. Обновление по 5 таблицам + связи.
Все работает отлично, сбоев нет.

Поясню.
Скачивается архив с сервака по FTP, потом распаковывается, выбираются нужные файлы и далее парсятся.
Так же потом через другую ConsoleCommand, проверяется наличие фотографий к изделиям, и если их нет то скачиваются с сервака по ftp и уменьшаются до нужных размеров, их 3 размера.

В общей сложности работают 4ре скрипта через консоль. по сумме времени работы занимают примерно от 2-3 минут. бывает быстрее, бывает медленнее, но не более 4 минут на все.

ps скрипты не огромные, но работают с большими объемами данных.