Pracuję nad aplikacją WWW PHP (Zend Framework), która dla każdego żądania użytkownika wykonuje wiele połączeń z zewnętrznymi API (SOAP i / lub REST przez HTTP).
W tej chwili wywołania API są sekwencyjne:
- Zadzwoń do API A, odczekaj około 1 sekundy na wyniki
- Zadzwoń do API B, odczekaj około 1 sekundy na wyniki
- Wyślij stronę z powrotem do użytkownika
W tym przypadku nie ma zależności ani zależności między API A i B; Po prostu chcę jak najszybciej zwrócić stronę z wszystkimi informacjami.
W tej chwili myślę o:
- curl_multi_exec () - http://php.net/manual/en/function.curl-multi-exec.php
- ZeroMQ - http://www.zeromq.org/
curl_multi_exec () wiążą mój kod klienta dla API A i B ściślej niż ja.
ZeroMQ wydaje się bardziej skomplikowany do wdrożenia i nie jestem pewien, jak zarządzać procesami roboczymi i gniazdami.
Czy ktoś z powodzeniem zaimplementował to zachowanie w aplikacji PHP / Apache bez zbytniego zamieszania?
Odpowiedzi:
1 dla odpowiedzi № 1Wygląda na to, że potrzebujesz pamięci podręcznej. Są dość łatwe do wykonania i mogą być systemem plików lub dowolnym rozszerzeniem bazy danych.