0

私はホテル予約システムに取り組んでいます。ホテルを取得するには、5 つのホテル API を統合する必要があります。複数の API を持つアプリケーションはほとんど見たことがありません。これらのアプリケーションには、次のプロセスがあります。

1 ホテルの空室状況リクエストの実行 (1 つずつ)

  1. xml 応答を解析し、詳細をデータベースに挿入する

  2. 1 ページあたり 20 ~ 30 のホテルを表示 (ページネーションの助けを借りて他のホテルを見ることができます)

しかし、これらのプロジェクトは非常に遅いです。これらのアプリケーションは、ホテルを表示するのに 1.30 ~ 3 分かかります。

私には2つの大まかなアイデアがあります。

1) 1 つの API (私の API の中で非常に高速) を実行し、最初に結果を表示してから、他の API を実行します。この場合、ページネーションを更新する必要があります (ただし、これを実装する方法が適切にわかりません)。

2) マルチスレッドで速度を上げることができます (cURL はマルチスレッドをサポートしています)。

アプリケーションの速度を上げるためのアイデアを提案してください。

私が使用しているテクノロジー: PHP、Mysql、cURL/SOAP、Simple XML Parsing (DOM Parsing に代わって)

4

2 に答える 2

1

ウェブサーバーがホテルのAPIからxmlデータを要求し、すべてのブラウザー要求で応答を解析していますか?もしそうなら、これは非常に非効率に聞こえます-データベースにデータをフェッチ、解析、保存するために5分ごとに繰り返すようにバックグラウンドプロセスを設定すると、Webサーバーはデータベースからではなくデータベースからこのデータを提示できます外部サービス。

于 2012-09-05T07:28:00.857 に答える
0

テスト環境にXDebugをインストールし、プロファイラーを使用してボトルネックがどこにあるかを確認します。CPU サイクルが無駄になっている場所を正確に表示するKCachegrindという優れたアドオンがあります。

于 2012-09-05T07:15:38.903 に答える