2010-09-18 18 views
21

Google ऐप इंजन task queues (उदाहरण)Google ऐप इंजन में कतार के 'बाल्टी-आकार' का क्या अर्थ है?

<queue> 
    <name>mail-queue</name> 
    <rate>5/m</rate> 
    <bucket-size>10</bucket-size> 
    </queue> 

यहाँ के रूप में विन्यास है, 'बाल्टी-आकार' क्या मतलब है? मुझे Google ऐप इंजन प्रलेखन में इसके बारे में एक व्यापक दस्तावेज नहीं मिला।

यह 10 के रूप में निर्दिष्ट करता है इसका मतलब है कि अगर 100 कार्यों को तत्काल कतार में रखा गया है तो उनमें से 10 को कतार में रखा जाएगा और शेष को अनदेखा कर दिया जाएगा?

उत्तर

32

बाल्टी आकार पूरी तरह से here वर्णित है:

कतार के प्रसंस्करण के burstiness, यानि कि एक उच्च बाल्टी आकार कतार को फांसी दर में बड़ा spikes की अनुमति देता है सीमित करता है। उदाहरण के लिए, 5/एस की दर और 10 के बाल्टी आकार के साथ एक कतार पर विचार करें। यदि वह कतार कुछ समय के लिए निष्क्रिय है (इसकी "टोकन बाल्टी" भरने की इजाजत है), और 20 कार्यों को अचानक घेर लिया जाएगा, यह तुरंत 10 कार्यों को निष्पादित करने की अनुमति दी जानी चाहिए। लेकिन अगले दूसरे में, केवल 5 और कार्य निष्पादित किए जा सकेंगे क्योंकि टोकन बाल्टी समाप्त हो गई है और 5/एस की निर्दिष्ट दर पर फिर से भर रही है।

कोई bucket_size एक कतार के लिए निर्दिष्ट किया जाता है, तो डिफ़ॉल्ट मान 5.

अपने मामले के लिए

इसका मतलब है कि अगर 100 संदेश कतारबद्ध कर रहे हैं, केवल दस सीधे मार डाला जा रहा है और एक और 5 हर अगले मिनट है। आप कोई संदेश नहीं खोलेंगे, लेकिन अगर आपकी बाल्टी आकार और दर बहुत कम है तो वे कतारबद्ध होंगे।

+0

+1 कमाल! साथ ही, यह जानकर अजीब बात है कि 'जावा' कार्य कतार दस्तावेज में यह जानकारी नहीं है जबकि 'पायथन' दस्तावेज़ में यह है! मुझे एक धारणा थी कि जावा और पायथन दस्तावेज सामग्री के समान ही होंगे। जैसा कि मुझे जावा के नीचे की चीज़ नहीं मिली, मैंने एक धारणा बनाई कि यह अजगर में भी नहीं होगा! इस पर ध्यान दिलाने के लिए धन्यवाद। – Gopi

+0

आह .. इसे जावा में भी मिला। लेकिन यह अजगर के रूप में व्यापक नहीं है। http://code.google.com/intl/en/appengine/docs/java/config/queue.html – Gopi

+0

यहां एक अद्यतित लिंक है: https://developers.google.com/appengine/docs/ जावा/कॉन्फ़िगर/कतार # Queue_Definitions – Lior