問題タブ [eventlet]
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 - Pythonのeventlet.backdoorを介して関数を呼び出したり、変数を変更したりできますか?
私は自分のケースを説明するためにこの最小限のコードを書きました:
実行後、telnet経由で接続し、モジュールをインポートして、turn_off_printing()を呼び出します。しかし、それは機能しません。私は間違えましたか、それとも不可能ですか?
python - PythonはCPU実行イベントレットの99%を消費します
私はすでにpythonとeventletのメーリングリストに投稿しているので、焦りを感じたらお詫びします。
小さな(マイクロではない)予約済みのubuntu11.10awsインスタンスでeventlet0.9.16を実行しています。
イベントレットのドキュメントの例のエコーサーバーに似たソケットサーバーがあります。私が最初にコードを実行し始めたとき、すべてが正常に見えますが、10時間または15時間後に、CPU使用率が約1%から99 +%になることに気づきました。その時点で、ソケットサーバーにそれ以上接続することはできません。
これは私が実行しているコードです:
L.LOGGメソッドは、提供されたパラメーターをmysqlテーブルに記録するだけです。
私は次のようなスレッドでsocket_listenerを実行しています:
私の最初のグーグル検索から、問題はhttps://lists.secondlife.com/pipermail/eventletdev/2008-October/000140.htmlで報告されたバグに似ているかもしれないと思いましたが、私は新しいバージョンのイベントレットを使用しているので、確かにそれはできませんか?
python - 1 つの Python プロセスでグリーン スレッドとネイティブ スレッドを混在させても安全ですか?
まず、eventlet や gevent などのグリーン スレッドを、標準ライブラリの python ネイティブ スレッド、つまり Lib/threading.py を同じ python プロセスに混在させても安全ですか?
第二に、もしそれが安全なら、それは悪い考えですか?
python - セロリ + イベントレット = 100% の CPU 使用率
セロリを使用して、さまざまな旅行代理店からフライト データを取得しています。すべてのリクエストには約 20 ~ 30 秒かかります (ほとんどの代理店では、リクエスト シーケンス - 承認、リクエストの送信、結果のポーリングが必要です)。
通常のセロリ タスクは次のようになります。
prefetch_multiplier = 1このタスクは、同時実行数 300のイベントレット プールで実行されます。
broker_limit = 300
最大 100 ~ 200 のタスクがキューからフェッチされると、CPU 使用率が 100% まで上昇し (CPU コア全体が使用されます)、キューからのタスクのフェッチが遅延して実行されます。
考えられる問題を指摘してください-ブロック操作(イベントレットALARM DETECTORは例外を与えません)、間違ったアーキテクチャなど。
python - イベントレット環境を検出しますか?
イベントレット環境内からインポートされることもあれば、通常のPython環境からインポートされることもあるモジュールがいくつかあります。とのようなものを条件付きで呼び出すことができるように、これを検出したいと思いmonkey_patchますdebug.hub_blocking_detection。
Pythonコードの一部がイベントレット環境で実行されているかどうかを検出するための信頼できる方法はありますか?
python - zeromq PUSH/PULLが期待どおりに機能しないイベントレット
eventletとzeromqPUSH/PULLソケットを使用してリスナー/送信者のペアを作成しようとしています。
これはコードです:
出力を取得しています:
期待される代わりに:
私は何が欠けていますか?
python - イベントレット/一般的な非同期 I/O タスクの粒度
私は、サードパーティの Web API からリアルタイム データを取得し、それを MySQL データベースに入れ、HTTP/JSON API 経由で利用できるようにする Web バックエンド/API プロバイダーに取り組んでいます。
API にフラスコを提供し、SQLAlchemy Core を使用して DB を操作しています。
リアルタイム データ取得部分については、リクエストを送信し、返された xml を解析して Python dict に変換し、それを返すことによってサード パーティ API をラップする関数があります。これらの API ラッパーを呼び出します。
次に、これらの関数を他のメソッド内で呼び出して、それぞれのデータを取得し、必要に応じて処理を行い (タイム ゾーンの変換など)、DB に配置します。これらをプロセッサと呼びます。
特に非同期 I/O とイベントレットについて読んでいて、非常に感銘を受けました。
これをデータ取得コードに組み込むつもりですが、最初にいくつか質問があります。
すべてにモンキーパッチを適用しても安全ですか? 私がフラスコ、SQLAlchemy、および他の多くのライブラリを持っていることを考えると、サルのパッチ適用にマイナス面はありますか (遅延バインディングがないと仮定します)?
タスクをどの程度の粒度で分割する必要がありますか? 定期的にプロセッサを生成するプールを作成することを考えていました。次に、プロセッサが API ラッパーを呼び出す部分に到達すると、API ラッパーは、eventlet.green.urllib2 を使用して実際の HTTP データを取得するために GreenPile を開始します。これは良いアプローチですか?
- タイムアウト - グリーンスレッドがハングしないようにしたい。greenthread ごとに eventlet.Timeout を 10 ~ 15 秒に設定するのは良い方法ですか?
参考までに、約 10 種類のリアルタイム データ セットがあり、プロセッサは 5 ~ 10 秒ごとに生成されます。
ありがとう!
javascript - Javascript の同期インターフェースを使用した非同期操作
最近、node.js についてよく耳にします。支持者はそれをキリストの再臨として宣伝しているようです。これは私の興味をそそり、私はそれを読むことにしました。
ベンチマークの数値を含む複数のソースに出くわしましたが、多数の同時リクエストを処理するのに優れていることは明らかです。しかし、「コールバック」によるコードの書き方は、私には非常に「不自然」に感じられます。少し調べた結果、Eventlet にたどり着きました。これにより、同期に非常によく似たコードを記述しながら、非同期操作を行うことができます (したがって、生産性が向上します)。
しかし、Node.js は Eventlet (http://codescience.wordpress.com/2011/09/05/non-blocking-io-node-js-and-pythons-eventlet) よりもはるかに強力なようです。V8 JSエンジンのせいだと思います。同期コードを記述しながら非同期操作を実行できる Java/Javascript 製品はありますか?これにより、開発者の生産性と JVM/V8 のパフォーマンスの両方の長所を得ることができますか?
python - エラー:イベントレットのインストール中にコマンド'gcc'が終了ステータス1で失敗しました
eventletソフトウェアの展開に「Herd」を使用するためにシステムにインストールしたかったのですが、ターミナルにgccエラーが表示されます。
なぜPython.h見つからないのですか?
python - Psycopg2 - Eventlet 接続のハング
postgresql サーバーへの永続的な接続を維持するプログラムがあります。ネットワークの問題が原因で接続がブロックされているとします (ネットワーク インターフェイスをダウンさせることでシミュレートできます)。eventlet を使用してクエリを呼び出したプロセスが停止します。これにより、他のイベントレットも実行できなくなります。gdb をアタッチすると、psycopg2 C コードでプロセスがブロックされていることが示されました。postgresql TCPキープアライブを試しました。ただし、接続が失われるとすぐにクエリが呼び出されると、これも失敗します。
eventlet がこの状態になるのを防ぐ方法はありますか? eventlet をこの状態から抜け出す方法はありますか。
GDB