день добрый
есть онлайн-магазин, люди подгружают на обновление прайс с количеством записей например >10K, по каждой записи >10 столбцов инфы
посоветуйте настройки или нестандартное решение задачи, чтобы сервак не подвисал
Кто как решает задачу выполнения огромных скриптов?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Кто как решает задачу выполнения огромных скриптов?
Поставить в очередь, выполнять в фоне мелкими порциями.
Нравится Yii? Давайте сделаем его лучше!.
- lancecoder
- Сообщения: 2532
- Зарегистрирован: 2012.06.26, 17:16
Re: Кто как решает задачу выполнения огромных скриптов?
да, я тоже как то делал импортер с больших файлов, так вот проще его разбить сначала на маленькие выгрузить из памяти большой и маленькими порциями обрабатывать, в итоге много памяти вы займете всего 1 раз(на время разбивки), а не на весь период обработки (импорта)
- Ghost_nsk
- Сообщения: 825
- Зарегистрирован: 2012.01.01, 00:45
- Откуда: Новосибирск
- Контактная информация:
Re: Кто как решает задачу выполнения огромных скриптов?
а пример можно, например имеем файл 15 тыщ позиций, процедура какая:
1) сохраняем файл на серваке
2) разбиваем файл на маленькие файлы по 1000 позиций
3) обращаемся к этим файлам, запускаем скрипт обработки
типа такого?
1) сохраняем файл на серваке
2) разбиваем файл на маленькие файлы по 1000 позиций
3) обращаемся к этим файлам, запускаем скрипт обработки
типа такого?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Кто как решает задачу выполнения огромных скриптов?
1) сохраняем файл на серваке сразу
2) по крону бьём на части в фоне
3) по другому крону обрабатываем то, что уже разбито
2) по крону бьём на части в фоне
3) по другому крону обрабатываем то, что уже разбито
Нравится Yii? Давайте сделаем его лучше!.
- Ghost_nsk
- Сообщения: 825
- Зарегистрирован: 2012.01.01, 00:45
- Откуда: Новосибирск
- Контактная информация:
Re: Кто как решает задачу выполнения огромных скриптов?
круто спасибо) будем пробоватьSam Dark писал(а):1) сохраняем файл на серваке сразу
2) по крону бьём на части в фоне
3) по другому крону обрабатываем то, что уже разбито
Re: Кто как решает задачу выполнения огромных скриптов?
Можно без крона - иногда делаю форму, которая автосабмитится.
На форме есть, например, счетчик, который указывает, какие записи обрабатывать.
Сабмитится форма, идет обработка порции данных, выдается новая форма с новым диапазоном для обработки, снова автоматически сабмитится и так далее (можно и через ajax). Но это придется заставить пользователя висеть на странице, пока идет обратока. Но в качестве плюшки - легко вешается прогресс-бар, показывающий процесс обработки.
На форме есть, например, счетчик, который указывает, какие записи обрабатывать.
Сабмитится форма, идет обработка порции данных, выдается новая форма с новым диапазоном для обработки, снова автоматически сабмитится и так далее (можно и через ajax). Но это придется заставить пользователя висеть на странице, пока идет обратока. Но в качестве плюшки - легко вешается прогресс-бар, показывающий процесс обработки.
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate
Re: Кто как решает задачу выполнения огромных скриптов?
Эм.
У меня обновляется сайт каждые 15 минут.
30К изделий. Обновление через 8 файлов. Один из которых как раз таки с 30К изделиями.
Время выполнения от 30-65 секунд через ConsoleCommand. памяти кушает 45 метров. Обновление по 5 таблицам + связи.
Все работает отлично, сбоев нет.
Поясню.
Скачивается архив с сервака по FTP, потом распаковывается, выбираются нужные файлы и далее парсятся.
Так же потом через другую ConsoleCommand, проверяется наличие фотографий к изделиям, и если их нет то скачиваются с сервака по ftp и уменьшаются до нужных размеров, их 3 размера.
В общей сложности работают 4ре скрипта через консоль. по сумме времени работы занимают примерно от 2-3 минут. бывает быстрее, бывает медленнее, но не более 4 минут на все.
ps скрипты не огромные, но работают с большими объемами данных.
У меня обновляется сайт каждые 15 минут.
30К изделий. Обновление через 8 файлов. Один из которых как раз таки с 30К изделиями.
Время выполнения от 30-65 секунд через ConsoleCommand. памяти кушает 45 метров. Обновление по 5 таблицам + связи.
Все работает отлично, сбоев нет.
Поясню.
Скачивается архив с сервака по FTP, потом распаковывается, выбираются нужные файлы и далее парсятся.
Так же потом через другую ConsoleCommand, проверяется наличие фотографий к изделиям, и если их нет то скачиваются с сервака по ftp и уменьшаются до нужных размеров, их 3 размера.
В общей сложности работают 4ре скрипта через консоль. по сумме времени работы занимают примерно от 2-3 минут. бывает быстрее, бывает медленнее, но не более 4 минут на все.
ps скрипты не огромные, но работают с большими объемами данных.