Оптимизация создания множества файлов

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
gerzog1995
Сообщения: 29
Зарегистрирован: 2018.07.29, 21:07

Оптимизация создания множества файлов

Сообщение gerzog1995 »

Задача - импорт ексель файла до 1к строк допустим, для каждой строки генерируется qr код, здесь идет нагрузка сохранения файла через file_put_contents(), как можно решить данный вопрос? Через форки или что? Помогите пожалуйста найти правильное решение.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Оптимизация создания множества файлов

Сообщение unknownby »

Используй PHPExcel, можно конкретно PHPExcel_IOFactory использовать.
Почитай про создание файлов excel при помощи PHPExcel
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Оптимизация создания множества файлов

Сообщение samdark »

В чём именно проблема? Сильная единовременная нагрузка?

Решения:

1. Кидать в очередь. Обрабатывать на отдельном сервере.
2. Кидать в очередь, обрабатывать с задержками чтобы дать серверу выдохнуть.
gerzog1995
Сообщения: 29
Зарегистрирован: 2018.07.29, 21:07

Re: Оптимизация создания множества файлов

Сообщение gerzog1995 »

unknownby писал(а): 2020.04.09, 16:03 Используй PHPExcel, можно конкретно PHPExcel_IOFactory использовать.
Почитай про создание файлов excel при помощи PHPExcel
PHPEcxel нагрузки никакой не несет, проблема с генерацией qr кода при каждой итерации документа
gerzog1995
Сообщения: 29
Зарегистрирован: 2018.07.29, 21:07

Re: Оптимизация создания множества файлов

Сообщение gerzog1995 »

samdark писал(а): 2020.04.09, 16:05 В чём именно проблема? Сильная единовременная нагрузка?

Решения:

1. Кидать в очередь. Обрабатывать на отдельном сервере.
2. Кидать в очередь, обрабатывать с задержками чтобы дать серверу выдохнуть.
Проблема в том, что память юзается маленькая, но по времени затягивается и превышает более чем 60 сек и начинает ругаться на лимит временной, лимит не хотелось бы увеличивать, спасибо
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Оптимизация создания множества файлов

Сообщение unknownby »

Каким образом генерируется QR код? Что используется для этого?
gerzog1995
Сообщения: 29
Зарегистрирован: 2018.07.29, 21:07

Re: Оптимизация создания множества файлов

Сообщение gerzog1995 »

unknownby писал(а): 2020.04.09, 16:11 Каким образом генерируется QR код? Что используется для этого?
2amigos/yii2-qrcode-component
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Оптимизация создания множества файлов

Сообщение samdark »

Проблема в том, что память юзается маленькая, но по времени затягивается и превышает более чем 60 сек и начинает ругаться на лимит временной, лимит не хотелось бы увеличивать, спасибо
В случае обработки в фоне это тоже проблема?
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Оптимизация создания множества файлов

Сообщение unknownby »

gerzog1995 писал(а): 2020.04.09, 16:08 Проблема в том, что память юзается маленькая, но по времени затягивается и превышает более чем 60 сек и начинает ругаться на лимит временной, лимит не хотелось бы увеличивать, спасибо
Временной лимит можно попробовать увеличить на 180 секунд (для начала). Может там выполнение идет всего 70 сек или того хуже 61 сек :D
А насчет генерации QR кода посмотреть бы само формирование файла.
Без формирования QR всё выполняется за пару секунд? Или тоже под 60 выходит?
gerzog1995
Сообщения: 29
Зарегистрирован: 2018.07.29, 21:07

Re: Оптимизация создания множества файлов

Сообщение gerzog1995 »

unknownby писал(а): 2020.04.10, 09:22
gerzog1995 писал(а): 2020.04.09, 16:08 Проблема в том, что память юзается маленькая, но по времени затягивается и превышает более чем 60 сек и начинает ругаться на лимит временной, лимит не хотелось бы увеличивать, спасибо
Временной лимит можно попробовать увеличить на 180 секунд (для начала). Может там выполнение идет всего 70 сек или того хуже 61 сек :D
А насчет генерации QR кода посмотреть бы само формирование файла.
Без формирования QR всё выполняется за пару секунд? Или тоже под 60 выходит?
Для начала я увеличил разумеется не на 180, а на 360 сек и сервер упал :D
Вопрос решен очередью и фоновым исполнением, памяти оперативной меньше употребялется и ничего нигде не падает, спасибо.
Ответить