問題タブ [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 - Eventlet または gevent または Stackless + Twisted、Pylons、Django、および SQL Alchemy
私たちは大量の非同期 io を必要とするアプリに Twisted を広く使用しています。代わりに CPU バウンドの場合があり、そのためにプロセスのプールを生成して作業を行い、複数のサーバー間でこれらを管理するためのシステムも備えています - すべて Twisted で行われます。よく働く。問題は、新しいチーム メンバーを最新の状態に導くのが難しいことです。Twisted で非同期コードを書くには、垂直に近い学習曲線が必要です。まるで人間がそのように自然に考えていないかのようです。
おそらく、混合アプローチを検討しています。おそらく、xmlrpc サーバー部分とプロセス管理を Twisted に保持し、他のものを少なくともある程度同期しているように見えるコードで実装しますが、そうではありません。繰り返しになりますが、明示的よりも暗黙的が好きなので、これについてもう少し考えなければなりません。とにかくグリーンレットに - それはどのくらいうまく機能しますか? つまり、Stackless があります。私の Gallentean アバターからわかるように、CCP の主力製品である EVE Online ゲームで Stackless が使用され、大きな成功を収めていることを私はよく知っています。Eventlet や gevent はどうですか? 今のところ、Twisted で動作するのは Eventlet だけです。ただし、gevent は純粋な python 実装ではなく、代わりに libevent に依存しているため、より高速であると主張しています。また、特異性や欠陥が少ないと主張しています。イベント私が知る限り、それは 1 人の男性によって維持されています。これは私をやや不安にさせますが、すべての優れたプロジェクトはこのように開始されるため...次にPyPyがあります-私はまだそれについて読み終えていません-ちょうどこのスレッドで見ました: Drawbacks of Stackless。
非常に紛らわしいです-一体どうすればよいのだろうか-Eventletがおそらく最善の策のように思えますが、それは本当に十分に安定していますか? 誰でも経験がありますか?代わりに Stackless を使用する必要があります。これは、Twisted と同様に、実績があり、テクノロジが証明されているためです。それらはうまく連携します。それでも、これを行うために別のバージョンの Python を用意しなければならないのは嫌です。何をすべきか....
ただし、このやや不快なブログエントリは、私にとっては頭に釘を打ちました: Asynchronous IO for Grownups I don't get the Twisted is being like Java の発言私にとって Java は通常、スレッドの考え方のどこにいるのかは関係ありません。それにもかかわらず、そのモンキーパッチが本当にそのように機能する場合は、すごい. うわー!
python - 理解できない例外をスローするイベントレット
ここにある Eventlet のサンプル コードを使用しています: http://eventlet.net/doc/examples.html#producer-consumer-recursive-web-crawler
実行の途中で、次の複数のインスタンスに遭遇しました。
python - ツイスト、geventイベントレット-いつ使用しますか
どのような状況下で、eventlet / geventのようなものはツイストよりも優れていますか?ツイストが最もよく使われているように見えますが、eventlet /geventにはいくつかの利点があるはずです...私は特定のシナリオに対する答えを探しているのではなく、一般的なものだけを探しています。
concurrency - 高性能の (まだ馬鹿げた) Web サーバー
次のことを行う非常に単純な Web サーバーを作成しようとしています。
- リクエストを受け取ります。
- 小さなファイルで応答します。接続を閉じます。
- リクエストデータを処理します。
つまり、応答は要求情報に依存しませんが、要求情報は依然として重要です。データは永続化され、分析に使用されます。
いくつかのイベント ドリブン ネットワーク フレームワークでこれを実行しようとしましたが、それらはすべて、処理コードが戻るまで接続を保持しているようです。通常、サーバーは応答後に何もする必要がないため、これは理にかなっていますが、私の場合、この特定の方法で物事を行う必要はありません。
理想的には、サーバーはリクエストに応答し続ける必要がありますが、リクエスト データはスタックに追加され、スタックは永続化されるにつれて空になります。
1 秒あたり数千のリクエストを処理することを期待しています。イベント駆動型プログラミングは本当に進むべき道ですか、それとも (従来の) スレッドに固執する必要がありますか? この種の作業に適した言語またはフレームワークはどれですか?
ありがとう。
python - S3バケットから300万個のオブジェクトをダウンロードする最速の方法
Python + boto +マルチプロセッシング、S3cmd、J3tsetを使用してみましたが、すべてに苦労しました。
何か提案がありますか、おそらくあなたが使っている既製のスクリプトか、私が知らない別の方法ですか?
編集:
eventlet + botoは、以下で説明するように価値のあるソリューションです。ここで優れたイベントレットリファレンス記事を見つけましたhttp://web.archive.org/web/20110520140439/http://teddziuba.com/2010/02/eventlet-asynchronous-io-for-g.html
現在使用しているPythonスクリプトを以下に追加しました。
python - このコードの何が問題になっていますか?
以下のコードを使用して、couchDb インスタンスへのリンクをスラグします。これにより、データベースが遅い場合に GUI がどうなるかをテストできます。
このコードは、ポート フォワーダーの例に基づいています。
ドキュメントを読み取り、削除、更新するときは期待どおりに動作しますが、挿入すると GUI がハングします。上記のコードを見逃して直接リンクすると、挿入は問題なく機能します!
データベースと通信している Python コードは、couchDB-python (http://code.google.com/p/couchdb-python/) であり、保存と挿入の両方で次のステートメントを実行します。
しかし、一方は機能し、もう一方は機能しません。これをデバッグする方法、または何が問題なのかについてのヒントはありますか?
database - Django を「グリーンレットセーフ」にすることはできますか?
全体像は次のとおりです。外部で Django モデルを操作しながら、非同期 IO を実行するアプリケーションで eventlet を使用したいと考えています。外部で Django を操作するのは簡単ですが ( Django: How can I use my model classes to interact with my database from outside Django? を参照)、それは主要な問題ではありません。
greenlets から Django を使用するのは危険だと思います (テストしていません)。実際、psycopg2 の場合、次の警告が表示されます ( http://www.initd.org/psycopg/docs/advanced.html#support-to-coroutine-librariesを参照)。
Psycopg 接続はグリーン スレッド セーフではなく、異なるグリーン スレッドで同時に使用することはできません
Django では、スレッドごとに 1 つの db 接続があり (そうですか?)、使用すると恐ろしいシナリオにつながる可能性があります。どうにかして接続オブジェクトを手動で提供することは可能ですか? それとも「greenlet-local」にしますか?
私の動機は、イベントレット ( http://eventlet.net/doc/modules/db_pool.html )から接続プールを使用して、IO バウンドのアプリケーションを高速化することです。
python - イベントレットのリソース
こんにちは、リアルタイムの更新が必要なプロジェクトに実際に取り組んでいるので、そのためにイベントレットを使用しています。イベントレットやリアルタイム ライブラリを使用した経験がないので、リソースを参照してイベントレットについて読むことができますか?
python - イベントレットによるファイルのスクレイピングと保存の問題
web サイトから img をスクラップするために eventlet を使用できますが、それらを国内のディレクトリに保存できませんでした。以下はコードです。タスクレット モデルの I/O 操作に詳しい人はいますか? ありがとう
python - ボトル フレームワークでのイベントレット サーバーの実行
私は bottle.py バージョン 0.9 でこのようなものを見ます。ということでしょうか。ボトル サーバーをイベントレット サーバーとして実行できます。
)