У меня есть довольно большое веб-приложение PHP, которое получает свои продукты от многочисленных других поставщиков через их API, обычно отвечающий большим XML-анализом. В настоящее время существует 20 поставщиков, но это должно расти еще больше.Выполнение параллельных запросов API в PHP с использованием Beanstalkd/Gearman
Наше текущее настроение использует множественные завитки для выполнения запросов, и это занимает около 30-40 секунд для завершения и слишком длинное. Скрипт работает в фоновом режиме, в то время как передний конец опроса базы данных ищет результаты, а затем отображает их по мере их поступления.
Чтобы улучшить этот процесс, мы думали использовать сервер заданий для работы в фоновом режиме, каждый запрос поставщика будучи отдельной работой. Мы видели, как beanstalkd и Gearman упоминаются.
Итак, мы находимся в правильном направлении, как и в, является ли сервером заданий правильный путь? В ближайшее время мы продолжим продвижение по службе, чтобы мы могли одновременно получать более 200 пользователей, одновременно ищущих 30 поставщиков, поэтому правильный выбор должен хорошо масштабироваться, если нам нужно загрузить баланс.
Любые советы в полной мере получены.
Фоновые задания, обработка нескольких источников, а также много кеширования, чтобы избежать выполнения одной и той же работы более одного раза (по крайней мере, до тех пор, пока базовые данные не изменились). Интерфейс будет затем опросить кеш для деталей продукта. –