問題タブ [gevent]

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 投票する
4 に答える
38856 参照

python - gevent が Ubuntu に正しくインストールされない

geventを試してみたいのですが、インストール後に gevent モジュールをロードできません。

インストール手順は次のとおりです。

環境設定は Ubuntu 10.10 x86_64 GNU/Linux です。

簡単なテストを実行しようとすると、次のようになります。

インストールが本来あるべきことをしていないのではないかと思いますが、何が悪いのかわかりません。

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

python - gevent socketio の例を実行しようとしています (Django)

次のエラーが発生しました。

このエラーは何を教えてくれますか? サンプルのすべての依存関係をエラーなしでインストールしました。

greenletcythonlibeventgevent、そこgevent-socketiogevent-webstocket問題はありません

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

python - Flash と TCP サーバー間の通信 (Python)

Flash クライアントと gevent の間で通信するための最も推奨される方法は何ですか? XMLSocketを使用する必要がありますか、それとももっと良いものがありますか...また、「MOVE 1、500、3000」などの独自の構文を作成する必要がありますか、それともJSONに似たものを使用する必要がありますか? これは生産用です、ありがとう。

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

websocket - Websocket と Gevent を使用した RabbitMQ

Websocket を使用して Web アプリケーション用のリアルタイム API を開発することを楽しみにしています。このために、RabbitMQ をブローカーとして使用しています。バックエンドは Python (gevent + websocket) に基づいており、Pika/Puka を rabbitmq クライアントとして使用しています。

ここで私が直面している問題は、websocket を使用して rabbitMQ に接続する方法です。最初の Websocket 接続の確立後、ソケット オブジェクトはクライアントからの新しいメッセージを待ちます。rabbitMQ の場合、コンシューマーをセットアップする必要があるため、メッセージを受信したときにメッセージを処理します。このように捉えることができ、

  1. クライアントは、全二重 Websocket を介してサーバーとの接続を確立します。
  2. すべてのクライアントは、最初の websocket ハンドシェイク後に RabbitMQ のコンシューマーとして機能する必要があるため、クライアントがメッセージを受け取ると、すべてのクライアントが更新されます。
  3. 新しいメッセージが websocket に到着すると、そのクライアントはそれを RabbitMQ に送信するため、この時点でこのクライアントはパブリッシャーとして機能します。

問題は、Websocket が新しいメッセージを待機することと、RabbitMQ コンシューマーがそのチャネルで新しいメッセージを待機することです。これら 2 つのケースをリンクできませんでした。

これが間違った方法かどうかはわかりません...

このシナリオを実装する方法が見つかりません。間違った方法で行っている場合、または別の方法がある場合は、これを修正するのを手伝ってください。

ありがとうございました、

ハリダス N.

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

python - Geventを使用して複数のコルーチン/グリーンレット/マイクロスレッドにまたがってログを記録しますか?

Pythonのgeventを使用して、実行中の複数のコルーチン/マイクロスレッド/ Greenletsにまたがるイベントをログに記録するための最良のアプローチは何ですか?

ログに記録したいイベントの例には、新しい接続の作成やソケットサーバーへの接続の削除が含まれます。

この考え方に沿って、「生成された」コルーチンが同じファイルにログを記録することは可能ですか?そのファイルへの潜在的な同時書き込み試行のために、それもお勧めですか?

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

python - comet 機能を django アプリに統合するために orbited または gevent を使用する必要がありますか?

私は Django をしばらく使用しており、ubuntu で Apache 2 mod_wsgi と PostgreSQL データベースを使用するセットアップでいくつかのアプリを作成しました。

xsendfile を使用して、Django ビューを介して Apache からファイルを提供し、ユーザーがフォームを介してファイルをアップロードできるようにするアプリがあります。これはすべてうまく機能していますが、ユーザーがブラウザを更新せずにチャットしたり、新しいファイルがアップロードされたときに確認したりできるようにすることで、機能を強化したいと考えています (そして複雑さは確実に増しています)。

これをスケーラブルにしたいので、AJAX で継続的にポーリングしたくありません。これは、多数のユーザーで非常に重くなるためです。

私はより多くの投稿、サイト、ブログを読んだので、comet 機能を Django アプリに統合することを期待できますが、これを行う方法については非常に多くの異なる意見があり、完全に混乱しています。

orbited、gevent、iosocket を使用する必要がありますか? Tornado はこの議論のどこに当てはまりますか?

メッセージもデータベースに保存したいのですが、データベースへの書き込み時にアプリケーションがブロックされないようにするために特別な構成が必要ですか? Django でチャット サーバーを実行すると、Apache からファイルを提供する能力に影響がありますか?

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

django - gevent socket.pyを使用している場合、DjangoでSMTPサーバーに接続できません

geventを使用してgunicorn0.12.2でdjangoアプリを実行し、virtualenv環境にインストールしています。smtp.gmail.com(django-registration create account view)に接続しようとすると、次のエラーが発生します。

編集:完全なトレースバックを追加

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

python - リッスン ソケットを共有する複数のプロセス: 新しいプロセスが入ると、古いプロセスが停止するのはなぜですか?

これらのコードは、私のプロキシ プログラムのサーバー部分であり、その関数はソケットを作成し、1 つずつ受け入れる 4 つのプロセスをフォークします。

私のプログラムでは、すべての関数をディスパッチするために gevent モデルを使用していますが、それを複数のプロセスに変更する前に、私のプログラムは問題ありません。しかし、2番目のプロセスを使用すると、最初のプロセスが実行を停止し、どこが間違っているのかわかりません。おそらく「受け入れ」機能または私のイベントがディスパッチを停止することです。

すでに2日間悩まされています。誰かが私を助けてくれることを願っています。

ところで、私の英語は下手です。理解できるように最善を尽くして説明します。

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

wsgi - GeventとWSGIを使用した通話のブロック

コルーチンの操作を始めたばかりで、geventとgreenletsについて読みました。テストのために、私はgeventspywsgiモジュールを介してこのコードを提供しました。

テキストが表示される前に、すべてのリクエストで5秒の遅延が発生するという結果を期待していました。ただし、すべてのリクエストはgevent.sleep()の呼び出しでキューに入れられ、最初のリクエストの直後に開始された場合、2番目のリクエストは約10秒かかります。

serve_forever関数は、リクエストごとに新しいグリーンレットを生成しませんか?

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

python - Pythonでの処理を延期する

既存のプロセスの速度を低下させないように、ブロックしない方法でイベントを作成しようとしています。利用可能な2つのオプションは次のようです。

  • Twistedの延期オブジェクトを使用する
  • Pythonロギングハンドラーを作成する

他のオプションはありますか?誰かがこれを経験したことがありますか?

背景:AmazonのCloudWatchサービスにイベントを書き込むことを計画しており、PUTリクエストを実行する際のレイテンシーが心配です。それが答えを変える場合、私は実際にいくつかのPUTを失うことについてそれほど心配していません(私たちは警告の目的でイベントを書いています、そしてそれらはとにかく1週間後にすべてパージされます)。