2011-06-06 16 views
10

में कैसे शुरू होते हैं क्या हम प्रोग्रामिंग के गतिशील बैकएंड शुरू कर सकते हैं? इसका मतलब है कि जब कोई बैकएंड शुरू हो रहा है, तो मैं एप्लिकेशन पर वापस गिरकर अनुरोध कैसे संभाल सकता हूं (मेरा मतलब है app.appspot.com)।गतिशील बैकएंड Google App Engine

जब मैं व्यवस्थापक कंसोल में मैन्युअल रूप से एक बैकएंड बंद करो, और यह करने के लिए एक अनुरोध भेजने के लिए, अपने "गतिशील" नहीं शुरू करने

उत्तर

4

backends काफी अच्छी तरह से here प्रलेखित रहे हैं। here दस्तावेज के रूप में बैकएंड को एपीसीएफजी या एडमिन कंसोल के साथ शुरू करना और बंद करना होगा। एक रोकथाम बैकएंड अनुरोधों को संभाल नहीं करेगा - अगर आप इसे चाहते हैं, तो आपको शायद कार्य कतार का उपयोग करना चाहिए।

+0

"एक रोकथाम बैकएंड अनुरोधों को संभाल नहीं करेगा" यह वही है जो मुझे चाहिए। प्रारंभ करें, व्यवस्थापक कंसोल में दिखाए गए गतिशील बैकएंड के राज्यों को रोकें, उनके राज्य के सही प्रतिनिधित्व नहीं हैं। व्यवस्थापक कंसोल में बस एक गतिशील बैकएंड "प्रारंभ करें", इसके लिए अनुरोधों को गतिशील रूप से संभालने के लिए, यदि कोई अनुरोध नहीं है तो यह आपको चार्ज नहीं करेगा। – syllogismos

+0

@ रिमोटपाथ फिर आप कार्य पंक्तियां चाहते हैं, बैकएंड नहीं। यह वास्तव में कार्य कतार कैसे काम करता है। –

+4

आप इस तरह टास्क कतार और बैकेंड गठजोड़ कर सकते हैं: 'taskqueue.add (यूआरएल = '/ task_url', विधि = 'प्राप्त करके' लक्ष्य = 'name_of_your_backend'))' कार्य हालांकि देव पर नहीं चलेंगे, तो देव पर कोई भी लक्ष्य निर्धारित करें: 'taskqueue.add (url = '/ task_url', method = 'gET', target = (कोई नहीं अगर const.DEBUG else 'name_of_your_backend'))' जहां DEBUG बराबर है 'os.environ ['SERVER_SOFTWARE']। startwith ('Dev')' – crizCraig

5

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

निवासी बैकएंड लगातार चलते हैं, जिससे आप समय के साथ अपनी स्मृति के पर भरोसा कर सकते हैं और जटिल प्रारंभिक कार्य कर सकते हैं।

http://code.google.com/appengine/docs/python/backends/overview.html

मैं हाल ही में एक गतिशील बैकएंड पर एक लंबी चलने वाली कार्य को क्रियान्वित करने शुरू कर दिया और फ़्रंटएंड्स के प्रदर्शन में एक नाटकीय वृद्धि देखा। मुझे लगता है कि ऐसा इसलिए था क्योंकि लंबे समय तक चलने वाला कार्य सामान्य उपयोगकर्ता अनुरोधों के साथ संसाधनों के लिए प्रतिस्पर्धा कर रहा था।

+0

"जब वे अनुरोध प्राप्त करते हैं तो गतिशील बैकएंड अस्तित्व में आते हैं" - आप बैकएंड के लिए अनुरोध कैसे भेजते हैं? – Keith

+0

ठीक है, मुझे लगता है कि उनके पास एंडपॉइंट्स हैं (जो मुझे याद है) जैसे 'backendname.appname.appspot.com'। – crizCraig

1

ऐसा प्रतीत होता है कि गतिशील बैकएंड को स्पष्ट रूप से बंद नहीं किया जाना चाहिए। ओवरविसव (http://code.google.com/appengine/docs/python/backends/overview.html) बताता है कि अंतिम अनुरोध संसाधित होने के 15 मिनट बाद गतिशील बैकएंड की बिलिंग बंद हो जाती है। इसलिए, यदि आपके ऐप में क्रॉन जॉब है, उदाहरण के लिए, इसे पूरा करने के लिए 5 मिनट की आवश्यकता है, और हर घंटे चलाने की आवश्यकता है, तो आप इसे करने के लिए बैकएंड कॉन्फ़िगर कर सकते हैं। आप जिस लागत का खर्च करेंगे, वह हर घंटे 15 + 5 मिनट या पूरे दिन के लिए 8 घंटे है। मुझे लगता है कि मुफ्त कोटा आपको 9 बैकएंड घंटे की अनुमति देता है। तो, इस प्रकार का परिदृश्य आपके लिए स्वतंत्र होगा। बैकएंड तब शुरू होगा जब आप कतार के माध्यम से अपना पहला अनुरोध भेज देंगे, और आपके द्वारा भेजे गए अंतिम अनुरोध के 15 मिनट बाद पूरी तरह से संसाधित हो जाएगा।