2011-02-02 12 views
5

मैं ट्वीट्स को ट्रैक और कैप्चर करने के लिए EventMachine संचालित ट्विटर-स्ट्रीम rubygem का उपयोग करने में देख रहा हूं। मैं पूरी तरह से प्रोग्रामिंग चीज के लिए नया हूं। मैं कैसे बता सकता हूं कि मेरे इवेंट लूप में जो भी प्रोसेसिंग कर रहा हूं, क्या मुझे पीछे गिरना पड़ रहा है? क्या जांचने का कोई आसान तरीका है?इवेंटमैचिन - आप कैसे बता सकते हैं कि आप पीछे गिर रहे हैं या नहीं?

+0

यह वास्तव में आपकी मदद करेगा यदि आप अपने कोड का एक संघीय नमूना प्रदान करते हैं जो आपने कोशिश की है। –

उत्तर

3

EventMachine में EventMachine::Queue.size विधि है जो आपको वर्तमान कतार में देखने देती है और यह समझती है कि यह कितना बड़ा है।

आप add_periodic_timer() और उस स्थिति में, कतार का आकार प्राप्त कर सकते हैं और इसे प्रिंट कर सकते हैं।

यदि संख्या छोटी नहीं हो रही है तो आप समानता पर हैं। यदि यह ऊपर जा रहा है तो आप पीछे गिर रहे हैं।

+1

बिल्कुल मुझे क्या चाहिए। धन्यवाद! – makenai

+0

ऐसा लगता है कि आकार एक क्लास विधि नहीं है, इसलिए आप इसे यहां लिखे गए नहीं कह सकते हैं? 'EventMachine :: Queue.size' क्या यह केवल कस्टम कतारों (उस वर्ग का एक उदाहरण) के लिए है, या इसका उपयोग मुख्य रिएक्टर के कतार आकार को प्राप्त करने के लिए किया जा सकता है? मैं EventMachine के लिए नया प्रकार हूं इसलिए मदद के लिए धन्यवाद। –

+1

यह विधि कस्टम कतारों के लिए मुख्य रिएक्टर कतार नहीं है। वास्तव में सटीक गिनती देखने का कोई तरीका नहीं है (https://groups.google.com/forum/?fromgroups#!topic/eventmachine/7CAkYGZnwzk)। विलंबता प्राप्त करना अक्सर एक अच्छा विकल्प है dj2 का जवाब देखें – trcarden

7

आप एक आवधिक टाइमर का उपयोग करके विलंबता निर्धारित कर सकते हैं और विलुप्त समय को प्रिंट कर सकते हैं। यदि आप 1 सेकंड के टाइमर का उपयोग कर रहे हैं तो आपके पास लगभग 1 सेकंड बीत जाना चाहिए, यदि यह बड़ा है तो आप जानते हैं कि आप रिएक्टर को कितना धीमा कर रहे हैं।

@last = Time.now.to_f 
EM.add_periodic_timer(1) do 
    puts "LATENCY: #{Time.now.to_f - @last}" 
    @last = Time.now.to_f 
end 
संबंधित मुद्दे

 संबंधित मुद्दे