Длительная задача в Laravel?

Доброго времени суток, друзья.

Не так давно взялся за использование Laravel, и уже имеется задача от заказчика, сформулировать которую можно так: "Хочу чтоб была возможность загружать в базу большое количество данных (данные о товарах), причем чтоб некоторые поля заполнялись автоматически (в частности - парсился сторонний ресурс, содержащий цену товара по его коду)". Набросал модель товара, описал его web-апи, прикрутил к gui, остался последний штрих - метод добавления товара в базу с парсингом его данных со стороннего ресурса. Предварительно связался с заказчиком, уточнил об изменениях тех. задания и показал фронт. Он доволен, но произносит сакраментальное "Только одно небольшое но - добавляться будут товары в объеме по триста-четыреста тысяч позиций, за раз. И чтоб не надо держать вкладку открытой".

Т.е. по большому счету необходимо загрузить файл на сервер, его разобрать в массив, и поочередно каждый элемент массива обработать. Но как лучше это сделать, чтоб и уровень "колхозности" был минимальный, и процесс в фоне не успев отработать - не умер, и голова не болела валидациями этого процесса? Ведь даже artisan db:seed трехсот тысяч записей занимает порядка пятнадцати минут.

Каким образом можно решить данную задачку? Подскажите, пожалуйста.
  • Вопрос задан
  • 851 просмотр
Решения вопроса 1
Необходимо использовать очереди https://laravel.com/docs/5.3/queues
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы