3

なぜ?ユーザーからデータを取得し、情報を比較するためにユーザーに結果を表示する多くのWebサービスを消費するdjangoプロジェクトがあるため、航空会社のWebサービスを介してフライトチケットを検索し、チケットを比較するためにリアルタイムで結果を表示するアグリゲーターWebサイトのようなものです.

jquery が 5 秒ごとにすべての結果の準備ができているかどうかを尋ねている間、セロリが Web サービスにヒットする「待機中のページ」でこれを行っているので、準備ができたら結果ページにリダイレクトします。

私がしたいのは、この「待機中のページ」を使用しないことです。結果が来るとリアルタイムで結果ページをフィードしたいのですが、ベストプラクティスに従って作成したいのです。つまり、jquery get したくないということです。 X 秒ごとに結果をテーブルにフィードします。

いくつかのコルーチンベースの python ライブラリがこれに役立つと思いますが、最初にあなたの経験についてもっと学び、いくつかの例を見たいと思います。プロジェクトのこの部分は非同期で実行するように設計されているため、つまり、Web サービスを使用してcelery-chords を使用していますが、アプリ サーバーを介してリアルタイムで情報をディスパッチするようには設計されていません。

実際のアーキテクチャ: python 2.7、django 1.3、postgresql 9、celery 3 + redis、uwsgi、nginx、すべて aws でホストされています。

前もって感謝します。

4

2 に答える 2

2

uWSGI+gevent は確かな組み合わせですが、現在、トルネード API で uWSGI を実行する方法はありません (また、uWSGI は 1.9 でコールバック ベースのアプローチのサポートを中止したため、その組み合わせが機能することはないと思います)。

gevent で作業を開始する前に解決する必要がある問題は、すべての部分が gevent に適していることを確認することです (redis とセロリは問題ありません。データベース アダプターを確認する必要があります)。その後、 --gevent を uWSGI インスタンスに追加するだけです。ここで、 はワーカーあたりの同時リクエストの最大数です。

于 2013-03-05T14:11:58.513 に答える