いいえ、私は1つの質問タイトルにどのくらい流行語を投げることができるのか見たくありません。AJAX long-polling a REST API/PHPアプリケーションでMemcached
PHPアプリケーションでいくつかのwebservicesにcURLを使用してRESTリクエストを作成しています。多くのアプリケーションがこのAPIに依存しているため、これらの要求はかなり頻繁に行われる必要があります。しかし、要求が重大な遅延(2〜5秒)があるだけで、私のアプリは痛いほど鈍く見えます。
私はMemcachedでこれらの要求をキャッシュすることを推奨していますが、アプリケーション内に現れるようなレイテンシにはまだ満足していません。
ここに私の考えがありました。私はバックグラウンドでAJAX long-pollingを実装して、ユーザーがレイテンシを完全に経験することはありません。 RESTリクエスト/ Memcacheルックアップは、設定された間隔でAJAXを通してすべて実行されます。
これは本当に新しいものです。これが最善のアプローチであるかどうかはわかりません。私が正しい道を歩んでいるなら、PHP + Apacheはこれをうまく処理できないことを知っています。しかし、PHPは私が知っている唯一の言語です。私は理想的には、PythonでTornadoのようなものを設定したいと思っていますが、今私が過剰なエンジニアリングをしているかどうかは分かりません。
ここの考えは参考になり、非常に高く評価されます。
RESTリクエストとウェブサービスの距離はどのくらいですか?別の言葉では、待ち時間はネットワークによって引き起こされるか、単に残りの要求は遅くなります。 RESTリクエストのキャッシュウォームアップを検討しましたか? – ajreal
@ajreal、キャッシュウォームアップとは何ですか? –
ウォームアップは、一連のデータを事前ロードして、memcacheにRESTからの有効なデータが移入されるようにします。つまり、アプリケーションにどのREST URLを決定させるのではなく、これらのREST URLをプリフェッチするバックグラウンドジョブを実行できます。データベースまたはファイルを使用して、アプリケーションで実行したREST URLを追跡することができます。そのような場合には – ajreal