Обработка нескольких исходящих вызовов API в веб-приложении PHP

#php #multithreading #zeromq #curl-multi

#php #многопоточность #zeromq #curl-multi

Вопрос:

Я работаю над веб-приложением PHP (Zend Framework), которое для каждого запроса пользователя выполняет несколько вызовов внешних API (SOAP и / или REST через HTTP).

На данный момент вызовы API являются последовательными:

  • Вызовите API A, подождите около 1 секунды для получения результатов
  • Вызовите API B, подождите около 1 секунды для получения результатов
  • Отправить страницу обратно пользователю

В этом случае нет никакой зависимости или связи между API A и B; Я просто хочу вернуть страницу со всей информацией как можно быстрее.

На данный момент я думаю о том,:

curl_multi_exec() свяжет мой клиентский код для API A и B более плотно, чем хотелось бы.

ZeroMQ кажется более сложным в реализации, и я не уверен, как я буду управлять рабочими процессами и сокетами.

Кто-нибудь успешно реализовал это поведение в приложении PHP / Apache без лишней суеты?

Ответ №1:

Похоже, вам нужен кеш. Они довольно просты в создании и могут быть либо файловой системой, либо любым расширением базы данных.

Комментарии:

1. Должен признать, я начинаю думать, что это будет проще, чем что-то вроде ZeroMQ. Что-то вроде (1) разветвления процесса (2) проверки наличия ответа (файловой системы или базы данных)? Насколько безопасно / надежно разветвление PHP?