RubyとEventmachineライブラリを使用してアプリケーションを作成しています。ノンブロッキングI/Oとイベント駆動型システムのアイデアが本当に好きです。私が直面している問題は、ロギングです。Rubyの標準ロガーライブラリを使用しています。ロギングに永遠にかかるわけではありませんが、ブロックすべきではないもののように見えます。Rubyの標準ロガー実装を非ブロッキングに拡張するライブラリがどこかにありますか、それともロギング呼び出しのためにEM :: deferを呼び出す必要がありますか?イベントマシンにこれを実行させる方法はありますか?
2313 次
2 に答える
3
スレッドを開始し、FIFOキューを持つシングルトンクラスでロガーをラップすることになりました。ロギングはログ情報をキューにダンプし、スレッドはループし、キューからデータを引き出し、実際のロガーを使用してログに記録します。実際にはreactorパターンではありませんが、EMスレッドプールをかみ砕くこともありません。
このシングルトンでは、ロガーを1つしか持つことができませんが、これがgithubで行ったことです。
于 2010-11-18T19:24:33.080 に答える
1
Syslog を備えたシステムを使用している場合は、EM-Syslogを参照してください。
于 2010-11-14T04:06:31.280 に答える