問題タブ [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.

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

python - 本当にPythonでタイムアウトを実装するには?

Pythonでタイムアウトを本当に実装するには? http://eventlet.net/doc/modules/timeout.html

コードは次のようになります。

タイムアウトになることはありません。どこが間違っていますか?

私が置き換えた追伸:

と:

例外に False を追加すると、うまく機能するようになりました。

への変更:

ただし、eventlet.sleep(0.1) でのみ機能します

たとえば、このコードは間違っています:

sleep 0 秒を追加するだけです。

そして、それは魅力のように機能します。

解決済み

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

python - eventlet を使用すると getaddrinfo() がブロックされるようです

イベントレットを使用して Django-celery タスクを実行します。しかし、何かがまだブロックされています。eventlet のブロッキング検出を使用したところ、getaddrinfo() がブロッキングしていることがわかりました。「dnspython」パッケージをインストールする必要があることをどこかで読みましたが、有無にかかわらず違いはありません。現時点でインストールされています:

イベントレットのコード (eventlet.green.socket) 内のどこかにブロックが表示されるのも面白いです。

私はそのようにセロリを実行します:

私のカスタム async_manage.py (その一部):

これは私が得るエラーです:

それを修正する方法の手がかりはありますか?これは私には意味がありません。

前もって感謝します、マティアス

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

mysql - MySQL を使用した Gunicorn マルチスレッド

単純な NGnix + Gunicorn + Django + MySQL (RDS on AWS) スタックを実行しようとしていますが、明らかに、MySQL クエリで何かが発生すると、速度が低下し、サービスがロックダウンされます。

それを防ぐために、私は eventlet を使い始めました (Celery との相性も良い) が、MySQLdb にパッチを当てると、パフォーマンスが低下し (応答時間が 2 ~ 3 倍)、不安定になる (再起動時にすべてのデータベース接続が数秒間ロックされる可能性がある) ようです。

セロリと同じロジックのイベントレットは問題なく動作するようですが、何が足りないのでしょうか?

ありがとう!

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

python - Ubuntu 12.04 の OpenSSL TLS 1.1 バグを回避するための python イベントレットへのパッチ適用

TLS 接続を使用する Ubuntu 12.04 の OpenSSL でバグに遭遇したので、回避する必要があります。バグの概要 - OpenSSL 実装の Ubuntu 12.04 バグにより、TLS 1.1 を使用した HTTPS へのさまざまな呼び出しがランダムに失敗します。

通常の python の回避策も上記のリンクで提供されており、基本的に TLS 1.1 の代わりに TLS 1.0 の使用を強制します。しかし、ノンブロッキング HTTP リクエストを実装する eventlet lib を使用しているため、この回避策はそのままでは機能しません。

私が理解しているように、イベントレット ライブラリは、問題に関連するいくつかのクラス、特にhttplib.HTTPSConnectionTLS 1.0 を適用するためにパッチを適用する必要があるクラスを再定義します。

問題は、イベントレットで正確に何にパッチを当てる必要があるか、またはイベントレットを介した非ブロック HTTP 呼び出しに対して TLS 1.0 接続を強制するために何を再定義する必要があるかです。

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

django - eventlet - django ベースの Web サービスのグリーン スレッド

地理的特徴から画像を作成し、django フレームワークを使用してマップに返す Web サービスがあります。これはタイリング マップ サービス (TMS) です。

Web サービスは、http://host.com/TMS/map_id/x/y/z.png のようなURLで呼び出されます。ここで、map_id、x、y、z は、画像の生成に使用される変数です。

この URL は、マップ クライアント (OpenLayers) で画像を返す Python 関数を呼び出します。マップ内を移動するとき、ユーザーはhttp://host.com/tiling/1/0/1/1.pnghttp://host.com/tiling/1/1/のようなこの Web サービスで一連のリクエストを呼び出します。0/1.pngなど

一度に 1 つずつではなく、並行して画像を生成するために、この Web サービスの関数をスレッド化するために eventlet を使用したいと思います。

特定の URL (TMS URL) をリッスンする方法と、関数でスレッドを開始する方法についての手がかりを提供することで、誰かがこれを行うのを手伝ってくれますか? どうもありがとう。

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

python - Python スレッドとグリーン スレッドの Lock 動作に違いはありますか?

通常の python スレッドと greenthread (eventlet) での動作にthreading.Lock()違いはありますか?threading.Semaphore()