Kredov long

Как импортировать большие данные

Тема в разделе "Базы Данных", создана пользователем alex_storm, 10 май 2017.

  1. alex_storm

    alex_storm webdev Команда форума

    Регистрация:
    11 дек 2012
    Сообщения:
    1.138
    Симпатии:
    581
    Есть апишка поставщика и клиент хочет получить от туда все, что там есть, а там очень много всего, категорий(с подкатегориями вместе) только 800шт.
    В одной подкатегории, которую удалось частично загрузить сейчас лежит 5к товаров.
    Данные поставляются в формате json.

    По идеи, как мне говорил клиент, у поставщика больше 1млн товаров и все они нужны для заливки, но не все будут отображаться на сайте.

    Так вот, возник вопрос.. Как организовать загрузку таких данных, при условии, что будет RestFullAPI.

    Понимаю, что нужно грузить очередями, по тиму LIMIT 0, 100 и т.д.

    Если даже делить массив на 100, и каждый раз делать обрыв цикла на какое то время, то все равно выплывает ошибка нехватки времени работы (что логично в итоге).

    Поэтому и созрел вопрос, как технологически решить эту задачу.

    Имеется в наличии: VDS под управлением Centos 7(64x), Nginx 1.12, PHP 7.1, MariaDB 5.5, Nodejs 6.

    В качестве вывода и управления сейчас планируется Opencart 2.3, но в дальнейшем переход на laravel 5.4.

    Сейчас основная задача заключается в создании базы данных для дальнейшего управления нею.

    Подскажите пожалуйста, какие могут быть варианты.
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.343
    Симпатии:
    901
    Это надо запускать через cli, там нет лимитов.

    Ну, а в случае Laravel можно будет ещё с очередями поиграться.
     
  3. alex_storm

    alex_storm webdev Команда форума

    Регистрация:
    11 дек 2012
    Сообщения:
    1.138
    Симпатии:
    581
    Т.е. просто не делать интерфейс по загрузке, выгрузке и просто сделать это все дело консольным скриптом и не парится?

    Да, на счет очередей уже читал, но пока это только проект на будущее..
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.396
    Симпатии:
    1.388
    да. зачем тебе интерфейс для парсинга? да даже если он есть, то можно всё отлично разрулить очередями
     
  5. alex_storm

    alex_storm webdev Команда форума

    Регистрация:
    11 дек 2012
    Сообщения:
    1.138
    Симпатии:
    581
    Супер! Спасибо! Я просто думал разруливать лонгполингом
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.343
    Симпатии:
    901
    Ты не с той стороны смотришь. Если думал делать через общения с браузером для разбивки на отдельные запросы, то надо было делать по аналогии с тем, как в OpenCart почтовые рассылки идут, а там не лонг поллинг, а обычные запросы, которые отправляются последовательно на основе информации из ответа на предыдущий запрос.
    Но в любом случае - это плохая идея.