2010-11-11 18 views
6

Ruby ve Eventmachine kitaplığını kullanarak bir uygulama yazıyorum. Engellemeyen G/Ç ve olay güdümlü sistemler fikrini gerçekten çok seviyorum, içine girdiğim sorun kayıt oluyor. Ruby'nin standart logger kütüphanesini kullanıyorum. Bu günlük kaydı sonsuza kadar sürmez, fakat engellememesi gereken bir şey gibi görünür. Ruby'nin standart kaydedici uygulamasını bloke etmemek için genişleten bir yer var mı yoksa günlüğümü aramalarım için EM :: defer mi çağırmalıyım? Benim için olay makinesini bunu yapmamın bir yolu var mı? Eğer Syslog ile bir sistemde isenizRuby ve eventmachine ile nasıl giriş yapılır?

+0

Günlüğe kaydetmeyi yeni bir iş parçacığına devretmeyi denediniz mi? – AndrewKS

+0

Bu, EM :: defer'in yapmama izin vereceği şeydi, fakat bundan kaçınmanın bir yolunu arıyorum. – Justin

cevap

3

bakmak olabilir. Günlüğe kaydetme, günlük bilgisini kuyruğa ve yalnızca ilmekli olana aktarır, kuyruğu dışarı çıkarır ve günlüğe kaydetmek için gerçek kaydediciyi kullanır. Gerçekten reaktör kalıbı değil ama EM iplik havuzumu da bozmaz.

Bu singleton ile, yalnızca bir tane kaydediciniz olabilir, ancak burada yaptığım şey github.

+0

Bazı kodları paylaşır mısınız? –

+1

Github'a yaptığım bağlantı. Açık kaynağa gitmemi sağladın! =) – Justin

+0

İş parçacığı oluşturmayan ve yerine geri çağrılarla yerel eşzamansız işleme kullanan bir günlük gem var mı? –

1

ben bir iş parçacığı başladı ve bir FIFO kuyruğu vardı bir tekil sınıfta logger sarma sona erdi EM-Syslog

İlgili konular