私は、ユーザーの要求ごとに、外部 API (HTTP 経由の SOAP および/または REST) に複数の呼び出しを行う PHP (Zend Framework) Web アプリケーションに取り組んでいます。
現時点では、API 呼び出しはシーケンシャルです。
- API A を呼び出し、結果が出るまで約 1 秒待ちます
- API B を呼び出し、結果が出るまで約 1 秒待ちます
- ページをユーザーに送り返す
この場合、API A と B の間に依存関係や関係はありません。できるだけ早くすべての情報を含むページに戻りたいだけです。
現時点では、次のいずれかを考えています。
- curl_multi_exec() - http://php.net/manual/en/function.curl-multi-exec.php
- ZeroMQ - http://www.zeromq.org/
curl_multi_exec() は、API A と B のクライアント コードを、思った以上にきつくバインドしてしまいます。
ZeroMQ は実装がより複雑なようで、ワーカー プロセスとソケットをどのように管理すればよいかわかりません。
PHP/Apache アプリケーションで、大騒ぎせずにこの動作をうまく実装した人はいますか?