7

क्रोधित न करने के लिए विलंबित नौकरी को कैसे थ्रॉटल करना है मैं एक ऐप बना रहा हूं जो फेसबुक ग्राफ एपीआई को बहुत मार देगा। मैंने सीखा है कि उनके पास हर 600 सेकंड में 600 अनुरोधों की दर सीमा है।फेसबुक एपीआई

मैं अपनी सभी पृष्ठभूमि प्रसंस्करण के लिए देरी नौकरी का उपयोग कर रहा हूं। एफबी एपीआई दर सीमा के तहत रहने के लिए देरी नौकरी निर्धारित करने का एक अच्छा तरीका क्या है? क्या देरी वाली नौकरी के साथ कोई चाल है या क्या मुझे अपनी दर सीमा पर जाने के लिए एक अलग पृष्ठभूमि कार्य प्रोसेसर बनाने की आवश्यकता है?

धन्यवाद

+0

आपके प्रश्न का उत्तर हल है, तो जवाब देने के लिए अगले चेक मार्क की जाँच करके यह "स्वीकार" करने के लिए याद है। –

+0

"मैं एक ऐप बना रहा हूं जो फेसबुक ग्राफ एपीआई को बहुत मार देगा। मैंने सीखा है कि उनके पास हर 600 सेकंड में 600 अनुरोधों की दर सीमा है।" आपको यह जानकारी कहां मिली और यह कितना विश्वसनीय है? बहुत धन्यवाद, वेस –

उत्तर

2

600 अनुरोधों हर 600 सेकंड औसत पर 1 प्रति सेकंड है।

बहुत तेज़ नहीं!

1) आपकी कंपनी के आकार और चोरी के आधार पर, मैं यह देखने के लिए एफबी के साथ जांच करता हूं कि आप अपने लिए उठाई गई सीमा प्राप्त कर सकते हैं या नहीं।

2) आप डेलएड जॉब के साथ रह सकते हैं, पहिया को फिर से आविष्कार करने की आवश्यकता नहीं है। आपको केवल शेड्यूलर को बदलने की जरूरत है।

मेरी विलंबित जॉब स्थापना में, मैं नौकरियों को पुनः प्रयास करने के लिए बस समय निर्धारित करने के बजाय "run_at" कॉलम का उपयोग करता हूं - मैं इसे पहली बार नौकरी चलाने के लिए भी उपयोग करता हूं। आप अपनी नौकरियों को कम करने के लिए इसका भी उपयोग कर सकते हैं।

# added run_at param 
# eg Delayed::Job.enqueue NewsletterJob.new('lorem ipsum...'), 0, 
#       Delayed::Job.db_time_now + 15.minutes 
def self.enqueue(object, priority = 0, run_at = nil) 
    unless object.respond_to?(:perform) 
    raise ArgumentError, 'Cannot enqueue items which do not respond to perform' 
    end 

    Job.create(:payload_object => object, :priority => priority, 
    :run_at => run_at)  
end      

अपने लक्ष्य के लिए, मैं पिछली बार एक अमेरिकन प्लान API कॉल कतारबद्ध किया गया था का ट्रैक रखने होता है, और एक समय run_at के बगल में एक अनुसूची:

DelayedJob फ़ाइल job.rb में बदली गई कम से कम एक सेकंड अधिक।

लाभ: आप एफबी एपीआई कॉल के साथ अन्य, गैर-एफबी कार्यों को अंतःस्थापित करने में सक्षम होंगे।

2

एक लापरवाही प्लग का थोड़ा सा लेकिन आप रूबी ऐप्स के लिए क्लाउड-आधारित पृष्ठभूमि प्रसंस्करण/कार्यकर्ता कतार सरलवॉकर को आजमा सकते हैं। आप कतार से बाहर आने के लिए एक या अधिक नौकरियों को शेड्यूल कर सकते हैं और जब आपको आवश्यकता हो तो एफबी एपीआई दबाएं। सभी शेड्यूलिंग और कतार प्रबंधन को सरलवर्कर द्वारा नियंत्रित किया जाता है और क्लाउड में प्रसंस्करण भी किया जाता है।

यह इस प्रकार के उपयोग के लिए बनाया गया है।

सुझाव दें कि आप एफबी (एपॉक्सी निर्माता और रखरखावकर्ता) के साथ काम करने के लिए मिनी_एफबी मणि भी देखें।

अगर आपको कोई मदद चाहिए तो हमें बताएं।

केन @ SimpleWorker

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