В двух словах: Есть ресурс, который по средствам обращения к веб-сервисам поставщиков (REST или SOAP) динамически формирует, уже не посредственно на своей стороне, прайс-листы для конечного пользователя. На данный момент опрос поставщиков идет синхронно, по средствам php один за другим. Задаем пустой массив->Опрашиваем первого поставщика->ответ в массив, опрашиваем второго->ответ в массив... так формируется массив. Далее сортируется, фильтруется... и в конце получаем готовый массив который уже и выдаем пользователю. Так вот, в последнее время список подключенных поставщиков существенно увеличилось, а соответственно опросов стало еще больше и суммарное время на получение первоначального массива увеличилось в разы. Чисто теоретически понимаю, что выполняя асинхронный опрос всех поставщиков, мы получим потраченное время на общий опрос равное самому наибольшему времени ответа от одного из поставщиков, а не сумме времени ответов от каждого. Но не понимаю как правильно можно реализовать такой метод. Опрашивать всех сразу, ждать последний ответ, а после формировать единый ("суммарный") массив из всех пришедших ответов.
Опрашивать по крону вне зависимости от наличия запроса от клиента. А клиенту показывать выборку из текущего состояния своей базы данных.
Это совершенно не вариант, базы такие, что по крону и за день не пройти, и состояние склада нужно актуальное, +-5 минут товар забрал другой покупатель.
Ну если базы такие что по крону не вариант, то и при запросе каждого из пользователей - ТЕМ БОЛЕЕ НЕ ВАРИАНТ.
Этот комментарий совсем не уместен. Нужно понимать что клиент опрашивает сервера с точными запросами, типа Артикул, на что получает пачку ответов - 1 Артикул ~1000-2000 (предложений) товаров и замен. 1 поставщик - несколько миллионов товаров. Я думаю теперь должно быть яснее...