問題タブ [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.
python - リッスン ソケットを共有する複数のプロセス: 新しいプロセスが入ると、古いプロセスが停止するのはなぜですか?
これらのコードは、私のプロキシ プログラムのサーバー部分であり、その関数はソケットを作成し、1 つずつ受け入れる 4 つのプロセスをフォークします。
私のプログラムでは、すべての関数をディスパッチするために gevent モデルを使用していますが、それを複数のプロセスに変更する前に、私のプログラムは問題ありません。しかし、2番目のプロセスを使用すると、最初のプロセスが実行を停止し、どこが間違っているのかわかりません。おそらく「受け入れ」機能または私のイベントがディスパッチを停止することです。
すでに2日間悩まされています。誰かが私を助けてくれることを願っています。
ところで、私の英語は下手です。理解できるように最善を尽くして説明します。
wsgi - GeventとWSGIを使用した通話のブロック
コルーチンの操作を始めたばかりで、geventとgreenletsについて読みました。テストのために、私はgeventspywsgiモジュールを介してこのコードを提供しました。
テキストが表示される前に、すべてのリクエストで5秒の遅延が発生するという結果を期待していました。ただし、すべてのリクエストはgevent.sleep()の呼び出しでキューに入れられ、最初のリクエストの直後に開始された場合、2番目のリクエストは約10秒かかります。
serve_forever関数は、リクエストごとに新しいグリーンレットを生成しませんか?
python - Pythonでの処理を延期する
既存のプロセスの速度を低下させないように、ブロックしない方法でイベントを作成しようとしています。利用可能な2つのオプションは次のようです。
他のオプションはありますか?誰かがこれを経験したことがありますか?
背景:AmazonのCloudWatchサービスにイベントを書き込むことを計画しており、PUTリクエストを実行する際のレイテンシーが心配です。それが答えを変える場合、私は実際にいくつかのPUTを失うことについてそれほど心配していません(私たちは警告の目的でイベントを書いています、そしてそれらはとにかく1週間後にすべてパージされます)。
python - puka は gevent または eventlet でうまく機能しますか?
新しいPython AMQPライブラリPuka(Pikaと混同しないでください)について読んでいて、イベントループを処理する方法がgeventまたはeventletと互換性があるかどうか疑問に思っていました。私の限られた知識に基づくと、gevent/eventlet で自動的にパッチを適用できるようです。
ありがとう!
python - pymongo + gevent: バナナを投げて、monkey_patch だけ?
私が今持っているよりも pymongo に関するより多くのドメインの専門知識が必要なここで急ごしらえ:
gevent monkey_patch() を呼び出して、gevent の「非同期」グリーンレット内で r/w での pymongo のブロック動作を正常に変更するために、Python で記述された pymongo ドライバーの「正しい」部分はありますか?
これが gevent と pymongo でもう少し足を運ぶ必要がある場合 - しかしそれは実行可能です - irc について少しのガイダンスを得ることができる限り、私は喜んで時間を割きます.
ありがとう!
注: 小規模な mongo 書き込みでは、ブロックを解除する前に書き込みの「リクエスト」をキューに入れるだけなので、大きな問題にはなりません。しかし、彼のねじれた非同期 mongo ドライバー (https://github.com/fiorix/mongo-async-python-driver) について fiorix と話していると、mongo のクイック書き込み (リクエスト) でさえ、大規模な非同期アプリケーションで問題を引き起こす可能性があります。(そしてもちろん、ノンブロッキング読み取りは最初から問題を引き起こす可能性があります!)
python - 複数のプロセスのリッスン ソケットを共有しているときに、新しいプロセス エントリと古いプロセスのイベントの実行が停止するのはなぜですか?
問題はプロキシ プログラムで発生しました。G10K を考慮して、プログラムで gevent を使用し、低レベルの gevent.core を使用してすべての機能を実行しています。
プログラムを複数のプロセスに変更する前に。全て大丈夫。しかし、それを変更すると、問題が発生します。
問題は、プロセス NO.2がソケットを受け入れると、プロセス NO.1 のイベントがディスパッチを停止することです。そして、イベントに sleep(0.1) を追加すると、驚きました。しかし、スリープ時間を短くすると、問題が再び発生しました。
この問題は 1 週間私を悩ませましたが、まだそれとは何の関係もありません。誰か助けてくれませんか?
私はそのようなイベントを使用します:
zeromq - gevent の fd で POLLIN をリッスンする
ZeroMQ を gevent ループに接続したい。ZeroMQ API を使用して、ソケットの fd を取得できます。他の greenlet をブロックせずに、greenlet で POLLIN イベントのこのソケットを監視するにはどうすればよいですか?
python - `gevent.event.Event`を使用したマルチリスナー通知のパターンを改善しますか?
ほとんどの場合、を使用するgevent.event.Event
と、コードは次のようになります。
リスナーは次のようになります。
これは「それを行う正しい方法」ですか?または、定期的なイベントを複数のリスナーに通知するためのより良い方法はありますか?
python - gevent-websocketを使用するポリシーサーバー
gevent-websocketを機能させようとしていて、フラッシュ仕様のポリシーサーバーに接続していません。私のpolicy.pyは次のとおりです。
しかし、WebSocketを使用すると、次のようになります。