0

既存のプロセスの速度を低下させないように、ブロックしない方法でイベントを作成しようとしています。利用可能な2つのオプションは次のようです。

  • Twistedの延期オブジェクトを使用する
  • Pythonロギングハンドラーを作成する

他のオプションはありますか?誰かがこれを経験したことがありますか?

背景:AmazonのCloudWatchサービスにイベントを書き込むことを計画しており、PUTリクエストを実行する際のレイテンシーが心配です。それが答えを変える場合、私は実際にいくつかのPUTを失うことについてそれほど心配していません(私たちは警告の目的でイベントを書いています、そしてそれらはとにかく1週間後にすべてパージされます)。

4

2 に答える 2

1

ロギングがアプリケーションに適合し、そのように聞こえる場合は、twisted を使用するよりも簡単なはずです。メモリ内のスレッド セーフ キューにログを記録し、別の (または複数の) スレッドをそこからプルしてクラウドにプッシュすることができます。

そうは言っても、Twisted の方が高速であるか、少なくともスケーラブルである可能性がありますが、特に知らない場合は、学習曲線が急勾配になります。

スレッドのアプローチが制限に達した場合は、アプリへのインターフェイスを変更せずに、ログ ハンドラーをツイストを使用するようにいつでも切り替えることができます。

于 2011-08-17T23:22:33.347 に答える
1

これは gevent では簡単です (別の greenlet で PUT を実行し、ソケットにパッチを適用するだけです)。

于 2011-08-23T19:37:52.453 に答える