2013-03-10 20 views
5

Flume-ng için özel bir havuz yazmayı deniyorum. Mevcut lavabolara ve belgelere baktım ve kod yazdım. Bununla birlikte, olayları alması beklenen 'process()' yöntemi her zaman null ile biter. Olay etkinliği yapıyorum = channel.take(); ama olay boş. Günlüklerde, olayın hala kanalda olduğu için bu yöntemin tekrar tekrar denendiğini görüyorum.Flume-ng null olayı için özel Sink

Birisi bana doğru yönde işaret edebilir mi?

cevap

5

Bu ... bir süreç fonksiyonunun iskelet. Değilseniz, , işlemini gerçekleştirin ve durumu READY olarak ayarlayın. Ne olursa olsun, her zaman işlemi kapatırsın.

Bunun işe yarayacağından eminim :).

+0

Awesome. Teşekkürler. Yine 2016'da bana yardımcı oluyor .. – logicalgeek

+0

hey burada benzer bir sorun var: https://stackoverflow.com/questions/46479157/streaming-kafka- mesajlar-mysql-veritabanı Bu konuda herhangi bir fikrin var mı? –

4

Bu, tasarım gereğidir. Lavabo koşucusu lavaboyu null olayları ile yoklayacaktır, böylece lavabonun canlı olduğundan ve gelecekteki olayları kabul etmeye hazır olduğundan emin olabilirsiniz. Bir null olayını aldığınızda, Status.BACKOFF döndürdüğünüzden emin olun ve tekrar denemeden önce bateri işlemcisi biraz bekleyecektir. Eğer, geri alma bir olay Backoff için durumunu değiştirmek alma başarısız olursa

+0

[Dökümantasyon] (http://flume.apache.org/FlumeDeveloperGuide.html#sink) bununla ilgili hiçbir şey söylemediği garip. – Dmitry

+0

Katılıyorum. Flume dokümantasyonu çok az ve biraz daha detaylı olmalı. – logicalgeek

+0

Geri çekilme süresi nedir? Ve nasıl kontrol ediliyor? AbstractSink sınıfı, Kaynaklar gibi yöntemleri uygulamamaktadır. public long getBackOffSleepIncrement() herkese açık getMaxBackOffSleepInterval ( – bearrito

İlgili konular