問題タブ [tornado]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3258 参照

python - Tornado と pyodbc による非同期呼び出し

ユーザーにデータベースクエリサービスを提供できる tornado に基づく Web サービスを実装したいと考えています。pyodbc モジュールを使用してデータベースに接続し、クエリを実行しました。実際には、クエリ結果の出力には時間がかかることがわかりました。つまり、次のコードを使用してクエリ結果を出力した場合

SQLコマンドは次のようなものです

tornado は、ループが終了するまでクエリ結果を出力しません。そして、それには長い時間がかかります。

現在のユーザーのクエリ要求を出力するためのループがまだ終了していなくても、tornado のノンブロッキング非同期機能を利用して、他のユーザーも Web サービスを使用できるようにしたいと考えています。

だから私は次のようなものを書きます:

この投稿を読みました: Asynchronous COMET query with Tornado and Prototype で、私のソリューションが機能しないことを知っていました。しかし、確かに add_timeout を使用することはできません。なぜなら、反復がどれくらい続くかを把握する方法がないからです。では、どうすればこれを乗り越えて目標を達成できるでしょうか?

0 投票する
1 に答える
3981 参照

amazon-s3 - RESTful Web サービス用の最もスケーラブルで高性能な Amazon Web Service (AWS) 構成は何ですか?

私は非同期 RESTful Web サービスを構築しており、最もスケーラブルで高性能なソリューションは何かを理解しようとしています。当初、私は FriendFeed 構成を使用する予定でした。nginx を実行する 1 台のマシンを使用して静的コンテンツをホストし、ロード バランサーとして機能し、動的コンテンツ用の Tornado Web サーバーを実行する 4 台のマシンへのリバース プロキシとして機能します。クアッドコア マシンで nginx を実行し、シングル コア マシンで各 Tornado サーバーを実行することをお勧めします。アマゾン ウェブ サービス (AWS) は、最も経済的で柔軟なホスティング プロバイダーと思われるので、ここに私の質問があります。

1a.) AWS では、c1.medium (デュアル コア CPU と 1.7 GB メモリ) インスタンス タイプしか見つかりません。これは、c1.medium で 1 つの nginx インスタンスを実行し、m1.small (シングルコア CPU と 1.7 GB メモリ) インスタンスで 2 つの Tornado サーバーを実行する必要があるということですか?

1b.) スケールアップする必要がある場合、これら 3 つのインスタンスを同じ構成内の別の 3 つのインスタンスにチェーンするにはどうすればよいですか?

2a.) S3 バケットで静的コンテンツをホストする方が合理的です。nginx はまだこれらのファイルをホストしていますか?

2b.) そうでない場合、nginx でホストしないとパフォーマンスが低下しますか?

2c.) nginx が静的コンテンツをホストしない場合、実際にはロード バランサーとしてのみ機能します。さまざまなクラウド構成のパフォーマンスを比較した優れた論文がここにあり、ロード バランサーについて次のように述べています。 SSL 処理のオーバーヘッドなしでレイヤー 4 のトラフィックを処理します。」ロードバランサーとして nginx をレイヤー 4 で動作するものに置き換えることをお勧めしますか、それとも Amazon の Elastic Load Balancer は十分に高性能ですか?

0 投票する
4 に答える
1831 参照

python - 文字のシーケンスで区切られたテキストのすべての出現をキャプチャするための正規表現

文字のシーケンスで区切られたテキストのすべての出現をキャプチャする正規表現を構築することは可能ですか?言い換えれば、私は標準的な.split()方法に相当するものを探しています。

split()Tornado WebアプリケーションのURLルートの指定に正規表現が使用されているため、使用できません。例えば:

このような正規表現は、Tornado、Django、またはルートパターンを実装するその他のWebフレームワーク上に構築されたWebアプリケーションのURLルートを指定するときに役立ちます。特に、長さが不明なURLパスを引数のリストに解析します。

これまでのところ、私は次の正規表現を思い付くことができました。

残念ながら、式は一致/posts/show/some-slug/15しますが、。ではなく、最後に一致したグループ(15)のみを返します['show', 'some-slug', '15']

私が望んでいるのは達成することです:

  • /posts/edit/15/=>['edit', '15']
  • /posts/edit/15=>['edit', '15']
  • /posts/2010/15/11=>['2010', '15', '11']
0 投票する
1 に答える
521 参照

python - 彗星のPythonメッセージキャッシュ?

簡略化されたバージョンの例を使用して、探しているものを最もよく説明できます。Tornadoのデモの1つは、単純なチャットサーバーです。

https://github.com/facebook/tornado/blob/master/demos/chat/chatdemo.py

MessageMixinここの授業に興味があります。メッセージの静的な長さのバックログを保持し、新しいメッセージが利用可能になると、新しいメッセージリストのスライスを返します。またはそれはそれがするように見えることです。簡単なコメットアプリを作成するときに、以前にそのようなものを実装したことがあることを知っています。

それで、誰かがこれを一般化し、それに派手なものを追加しましたか?私は特に、多くの通信チャネルを管理し、しばらく使用されていないチャネルを削除する方法に興味があります。永続性も役立つ場合があります。

これはMQができることですか?

0 投票する
4 に答える
1923 参照

python - リターン後のリクエストハンドラ内のTornadoプロセスデータ

トルネード リクエスト ハンドラで、ユーザーに返される内容に影響しない関数 foo() を呼び出さなければならない場合、最初にユーザーに結果を返してから foo() を呼び出すのが理にかなっています。竜巻で(またはサードパーティのパッケージで)これを簡単に行うことはできますか?

0 投票する
3 に答える
1170 参照

python - Tornado でのタイムゾーンの設定

Tornado でタイムゾーンをどのように処理して、ユーザーが自分のタイムゾーンに合わせてフォーマットされた時間を表示できるようにしますか? デフォルトで GMT に設定されている locale.format_date があることは知っていますが、ユーザーに基づいて適切なタイムゾーンを設定するにはどうすればよいですか?

0 投票する
2 に答える
1277 参照

nginx - Ubuntu 10.04 で Nginx を使用して Tornado をドメイン名で自動的に起動する

nginx.conf ファイルをセットアップできました。次のようになります。

nginx ファイルに関する私の質問は次のとおりです。1) アプリケーションをドメイン名 www.example.com でホストしたいのですが、nginx.conf ファイルのどの行を変更すればよいですか?

私の nginx.conf ファイルは、app.py と同じフォルダーにあります。

2) /etc/init.d/nginx start と入力して nginx を起動しようとすると、次のエラー メッセージが表示されました。

エラーメッセージ:

/etc/nginx にある nginx.conf ファイルの構成を行っていません。この部分に関する質問は次のとおりです。3) エラーを修正するにはどうすればよいですか? 4) nginx を自動的に起動するにはどうすればよいですか?

python app.py と入力して Tornado アプリを実行しようとしましたが、http://xxx.xx.xxx.xxx:8888に移動すると、アプリが正しく動作します。

ただし、端末を閉じる (プロセスを強制終了する) と、トルネード アプリはアクティブではなくなります。

ここでの私の質問は次のとおりです。5) トルネード アプリを自動的に起動するにはどうすればよいですか? 6) ドメイン名でトルネードを実行するにはどうすればよいですか?

皆様、今しばらくお待ちいただきますようお願い申し上げます。

よろしくお願いします。

0 投票する
2 に答える
306 参照

python - amqp queue_delete 非同期でエラーをキャッチ

Tornado で pika(v 0.9.4) を使い始めたばかりで (を使用してpika.adapters.tornado_connection.TornadoConnection)、使用時にエラーをキャッチする適切な方法は何だろうと思っていqueue_deleteました。存在しません。RabbitMQ は AMQPError を発生させますが、これを非同期で処理する方法がわかりません。

誰でもこれについて何か洞察がありますか?

0 投票する
1 に答える
311 参照

python - Python でイベントループを使用してジェネレーターをコールバックに変換する

スレッドを使用せずに、ジェネレーターをイベントループからコールバックに変換する簡単な方法はありますか?

コードを変更したい

Tornado のイベント ループで使用できるものに。上記のコードの問題は、ジェネレーターがブロックされると現在のスレッドがブロックされることです。

0 投票する
1 に答える
538 参照

python - Pythonを使用してLinuxのオーディオジャックに何かが接続されていることを検出するにはどうすればよいですか?

tornado.ioでpython tornado Webサーバーを使用しています。

tornado.io を介してイベントを非同期に送信できることを証明したいと考えています。

何かがオーディオ ジャックに差し込まれていることを簡単に検出し、tornado.io でメッセージを送信するにはどうすればよいですか?