問題タブ [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 投票する
3 に答える
1762 参照

python - gevent 複数の StreamServer リスナー

handlerSocket への接続プールを持つデーモンがあります。2 種類のクライアントがあり、プロトコルが異なります。各プロトコルを処理し、それらの間で接続プールを共有する 2 つのリスナーをセットアップしたいと考えています。twisted では、これは比較的簡単に達成できますが、gevent ではこれを行う方法を見つけることができませんでした。ありがとう!

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

python - Django:gevent-socketioとWSGIHandlerを使用する場合のキャッチ/ログ例外

ここでgevent-socketioに関するCodySoylandのブログ投稿で提示されたアイデアを拡張しています:http://codysoyland.com/2011/feb/6/evented-django-part-one-socketio-and-gevent/

しかし、例外が飲み込まれている場所を見つけるのに苦労しています。socketioループ中に発生したエラーはすべて消えたように見え、実行は停止します。mod_wsgiに関する他のスレッドで提案されているように、Pythonロギングモジュールを使用してみましたが、役に立ちませんでした。

誰か助けてもらえますか?

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

python - PythonでCometを理解するのに助けが必要です(Djangoを使用)

これに丸2日を費やした後でも、PythonでのCometのすべての選択肢と構成を理解することは不可能だと感じています。私はここですべての答えと私が見つけたすべてのブログ投稿を読みました。この時点で出血しそうな気がするので、この質問に問題があったことを心からお詫び申し上げます。

私はこれらすべてにまったく慣れていません。これまでに行ったことは、ApacheにPHP/Djangoバックエンドを備えた単純な非リアルタイムサイトでした。

私の目標は、リアルタイムのチャットアプリケーションを作成することです。うまくいけば、ユーザー、認証、テンプレートなどのためにDjangoに関連付けられています。

ツールについて読むたびに、その上に別のツールが必要だと書かれていますが、それは終わりのない連鎖のように感じます。

まず第一に、誰かがこの仕事に必要なすべてのツールを分類できますか?
さまざまなサーバー、ネットワークライブラリ、エンジン、クライアント側のJavaScriptについて読んだことがありますが、他に何があるのか​​わかりません。こんなに複雑になるとは想像もしていませんでした。

Twisted / Twisted Webは人気があるようですが、それを統合したり、他に必要なものを統合したりすることはできません(少なくともクライアント側のJSが必要だと思います)。

私が正しく理解している場合、OrbitedはTwistedに基づいて構築されていますが、他に何か必要ですか?

GeventとEventletはTwistedと同じカテゴリにありますか?他にどれくらい必要ですか?

Celery、RabbitMQ、またはRedisのようなKVストアのようなものはどこから入りますか?メッセージキューの概念がよくわかりません。それらは不可欠であり、どのようなサービスを提供していますか?

私が見なければならない完全なチャットアプリのチュートリアルはありますか?

この精神的な障害を乗り越えるのを手伝ってくれた人には心からお世話になります。何か忘れてしまった場合は、遠慮なく質問してください。私はそれがかなりの質問であることを知っています。

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

file-upload - nginx でリクエストのバッファリングを無効にする

nginxはリクエストをupdstreamサーバーに渡す前にバッファリングしているようですが、ほとんどの場合は問題ありませんが、私にとっては非常に悪いです:)

私の場合は次のようになります。

3つの異なるサーバーをプロキシするフロントエンドサーバーとしてnginxを使用しています:

  1. 典型的なphpアプリを備えたApache
  2. python と gevent を使用して私が構築したshabet (オープン ソースのコメット サーバー)
  3. クライアントからのアップロードを受け入れながら、ラックスペース クラウドファイルへのアップロードをプロキシする gevent で再構築されたファイル アップロード サーバー。

#3は問題です。現在私が持っているのは、nginxがすべてのリクエストをバッファリングしてから、それをファイルアップロードサーバーに送信し、ファイルアップロードサーバーが、取得した各チャンクを送信するのではなく、それをcloudfilesに送信することです(アップロードを私は6-7MB /秒をクラウドファイルにプッシュできます)。

私が nginx を使用する理由は、1 つの IP を持つ 3 つの異なるドメインを持つためです。それができない場合は、ファイルアップロード サーバーを別のマシンに移動する必要があります。

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

python - ソケットの切断を検出するにはどうすればよいですか? / タイムアウトを指定して socket.recv を呼び出すにはどうすればよいですか?

gevent パッチを適用したソケットを使用してストリーミング サーバーに接続し、adsl 接続を使用しています。

私はサーバーを制御していませんが、私のテストでは、サーバーを停止すると、recv の結果が空の文字列かどうかを確認するだけで切断を検出できますが、adsl モデムをオフにすると recv は終了しません。コンピューターのネットワーク ケーブルを外しただけでは、空の文字列は返されませんが、再接続すると、その間にサーバーが送信したすべてのものが返されるので、ルーターまたはモデムが接続を開いたままにしているのだと思います。ネットワークケーブルが切断されている間、ストリームをバッファリングします。

socket.SO_RCVTIMEO を数秒に設定しようとしましたが、切断が検出されず、recv は永久に「ブロック」し続けます。これは gevent であるため、グリーンスレッドをブロックするだけですが、再接続を試行できるように、この切断をできるだけ早く検出する必要があります。

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

python - 挿入は行われていないようです

gevent-mysql で gevent を使用しています (同じ効果で pymysql も使用しました)。うまく選択できますが、何をしても挿入を実行できません。私はアイデアがありません。

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

python - OSXでCythonとgeventをビルドする

geventをビルドすると、エラーが発生します

CFLAGS = "-arch x86_64"でアーキテクチャを指定しようとしましたが、機能しません。

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

python - gevent-socketio サーバーをスケーリングするには?

gevent-socketio (Jeffrey Gelens がリリース)を使用してリアルタイム サービスを構築する予定です。いくつかの目的のために、多くのgevent-socketioサーバーでサービスをスケーリングする必要があります。複数のCometサーバーにリクエストを分散するためのリバース プロキシ ( nginxなど) として使用でき、別のサーバーを中央セッション データストアとして使用できると思いますが、そうですか?

gevent-socketio のソース コードを変更しようとしていますが、かなり難しいです。

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

python - Pythonで記述されたWebアプリはどのようにデプロイされますか?

私は元PHP開発者であり、nginx構成スクリプトを記述し、ディレクトリを作成し、nginx + PHP-FPMを起動し、コードをアップロードして実行できるという考え方を乗り越えるのに苦労しています。Pythonを試して、Pythonの感触をつかみ、Webアプリケーションの作成を開始したいのですが、すべてを機能させる方法について少し迷っています。

Djangoのようなフレームワークを使用することを常に勧める人もいますが、これがどのように機能するかをボトムアップで確認したいと思います。

Python Webサーバーの比較に出くわしましたが、geventが私が探しているもののようです。しかし、それはどのようにすべて一緒に収まるのでしょうか?リバースプロキシとしてnginx(静的コンテンツを除く)が必要ですか、それとも別のことをしますか?私は「初心者の失明」に直面しており、それがどのように組み合わされているかを確認するのに苦労しています。

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

python - Python:geventでは、フロントエンドサーバー/リバースプロキシが必要ですか?

関連する質問で、Python Webアプリケーションがエンドツーエンドでどのように「結びつく」かを理解しようとしています。また、WSGIモジュールにはApache / lighttpd/nginxが必要であると想定しています。(CDNを使用して静的コンテンツを提供していると仮定しましょう。)

WSGIをスキップし、geventライブラリを使用してクライアントに直接サービスを提供することは可能ですか?