За последние 24 часа нас посетили 17839 программистов и 1641 робот. Сейчас ищут 2336 программистов ...

Асинхронное выполнение опроса нескольких REST или SOAP API

Тема в разделе "PHP для профи", создана пользователем Naijy, 14 фев 2018.

  1. Naijy

    Naijy Новичок

    С нами с:
    23 сен 2016
    Сообщения:
    17
    Симпатии:
    0
    В двух словах:
    Есть ресурс, который по средствам обращения к веб-сервисам поставщиков (REST или SOAP) динамически формирует, уже не посредственно на своей стороне, прайс-листы для конечного пользователя.

    На данный момент опрос поставщиков идет синхронно, по средствам php один за другим. Задаем пустой массив->Опрашиваем первого поставщика->ответ в массив, опрашиваем второго->ответ в массив... так формируется массив. Далее сортируется, фильтруется... и в конце получаем
    готовый массив который уже и выдаем пользователю.

    Так вот, в последнее время список подключенных поставщиков существенно увеличилось, а соответственно опросов стало еще больше и суммарное время на получение первоначального массива увеличилось в разы.
    Чисто теоретически понимаю, что выполняя асинхронный опрос всех поставщиков, мы получим потраченное время на общий опрос равное самому наибольшему времени ответа от одного из поставщиков, а не сумме времени ответов от каждого.
    Но не понимаю как правильно можно реализовать такой метод.
    Опрашивать всех сразу, ждать последний ответ, а после формировать единый ("суммарный") массив из всех пришедших ответов.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Опрашивать по крону вне зависимости от наличия запроса от клиента. А клиенту показывать выборку из текущего состояния своей базы данных.
     
  3. Naijy

    Naijy Новичок

    С нами с:
    23 сен 2016
    Сообщения:
    17
    Симпатии:
    0
    Это совершенно не вариант, базы такие, что по крону и за день не пройти, и состояние склада нужно актуальное, +-5 минут товар забрал другой покупатель.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Ну если базы такие что по крону не вариант, то и при запросе каждого из пользователей - ТЕМ БОЛЕЕ НЕ ВАРИАНТ.
     
  5. Naijy

    Naijy Новичок

    С нами с:
    23 сен 2016
    Сообщения:
    17
    Симпатии:
    0
    Этот комментарий совсем не уместен. Нужно понимать что клиент опрашивает сервера с точными запросами, типа Артикул, на что получает пачку ответов - 1 Артикул ~1000-2000 (предложений) товаров и замен.
    1 поставщик - несколько миллионов товаров.
    Я думаю теперь должно быть яснее...
     
  6. valentinnew

    valentinnew Активный пользователь

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36