2013-03-31 7 views
7

मैं वर्तमान में Google ऐप इंजन का उपयोग कर रहा हूं क्योंकि मेरा मोबाइल एप्लिकेशन बैक एंड है। मेरे पास कुछ कार्य हैं जिन्हें जीई पर्यावरण में निष्पादित नहीं किया जा सकता है (मुख्य रूप से ओपनसीवी का उपयोग करके छवि पहचान)। मेरा इरादा जीए को बनाए रखना और इन विशिष्ट कार्यों को करने के लिए एडब्ल्यूएस का उपयोग करना है।अमेज़ॅन वेब सेवाओं का उपयोग करके Google ऐप इंजन बैक एंड

क्या जीई से एडब्ल्यूएस तक विशिष्ट कार्यों को पारित करने का कोई आसान तरीका है? जैसे एक कार्य कतार?

उत्तर

1

क्या आपने अमेज़ॅन सरल कतार सेवा का उपयोग करने पर विचार किया है? http://aws.amazon.com/sqs/

आप मानक http क्लिंट का उपयोग कर gae से कतार में आइटम जोड़ने में सक्षम होना चाहिए।

1

निश्चित रूप से। AppEngine में है, जहां आप DeferredTask को कार्यान्वित करके अपने कार्यों में डाल सकते हैं। उस कार्य में आप make requests एडब्ल्यूएस पर कर सकते हैं।

2

आप या तो जीएई से एडब्ल्यूएस की तरफ से कार्यों को धक्का दे सकते हैं, या आपके एडब्ल्यूएस उदाहरण जीएई से कार्यों को खींच सकते हैं।

यदि आप जीएई से एडब्ल्यूएस की तरफ से कार्यों को धक्का देते हैं, तो आप अपने डेटा को अपने एडब्ल्यूएस उदाहरणों के लिए धक्का देने के लिए URLFetch का उपयोग कर सकते हैं।

आप अपने एडब्ल्यूएस उदाहरणों GAE से कार्य खींच करने के लिए पसंद करते हैं, तो आप अपने GAE उदाहरणों GAE Pull Queue में अपने कार्यों को डाल दिया है, और फिर अपने एडब्ल्यूएस उदाहरणों Task Queue REST API का उपयोग कतार से कार्य पट्टे हो सकता था।

किसी भी मामले में, एडब्ल्यूएस इंस्टेंस आपके जीएई सर्वलेट्स के लिए एक साधारण पोस्ट अनुरोध के माध्यम से या उपरोक्त REST API के माध्यम से कार्यों को सम्मिलित करके प्रसंस्करण परिणाम की रिपोर्ट कर सकता है जिसे बाद में आपके जीएई उदाहरणों द्वारा पट्टे पर दिया जाएगा। उत्तरार्द्ध उपयोगी हो सकता है यदि आप उस दर को नियंत्रित करना चाहते हैं जिसकी आपकी GAE ऐप परिणाम संसाधित करती है।

1

अस्वीकरण: मैं ऐपस्केल परियोजना पर एक अग्रणी डेवलपर हूं।

एक तरीका जिस पर आप जा सकते हैं AppScale के साथ है - यह ऐप इंजन एपीआई का एक खुला स्रोत कार्यान्वयन है जो अमेज़ॅन ईसी 2 (साथ ही अन्य बादलों) पर चलता है। चूंकि यह ओपन सोर्स है, इसलिए आप ऐपसेवर को बदल सकते हैं जिसे हम ओपनसीवी का उपयोग करने के लिए सक्षम करते हैं। इसके लिए आपको एडब्ल्यूएस में अपना ऐप इंजन ऐप चलाने की आवश्यकता होगी, लेकिन आप रचनात्मक हो सकते हैं और Google के साथ आपके ऐप की प्रतिलिपि बना सकते हैं, और जब आप को एडब्लूएस में चल रहे अपने ऐप के संस्करण में टास्क कतार अनुरोध भेजते हैं ओपनसीवी पुस्तकालयों का उपयोग करें।

0

जीएई में आवेदन को बनाए रखने के लिए आपका इरादा और कुछ कार्यों को करने के लिए एडब्ल्यूएस का उपयोग करना, जो जीएई में नहीं किया जा सकता है, मेरे लिए एक सही परिदृश्य लगता है।

वहाँ एडब्ल्यूएस को gae से विशिष्ट कार्यों के पारित करने के लिए एक आसान तरीका है:

मैं कुछ संसाधनों के साथ-साथ कुछ विचार साझा करने के लिए अपने प्रश्न का मुख्य हिस्सा जवाब देने के लिए करना चाहते हैं? जैसे एक कार्य कतार?

यदि आपको हर समय कार्य करने के लिए जीएई और एडब्ल्यूएस की आवश्यकता है तो आपका आवेदन निश्चित रूप से बैच शेड्यूल या कार्य कतार पर निर्भर करेगा। वे जीएई द्वारा उपलब्ध हैं।

हालांकि यदि आप जीएई में कार्य खींचने और अंतराल के आधार पर एडब्ल्यूजी द्वारा निष्पादित करने की व्यवस्था कर सकते हैं (प्रत्येक घंटे एक घंटे से कम दिन में दो बार कहें), तो आप उन्हें तब तक उपयोग करने की आवश्यकता नहीं कर सकते जब तक आप GAE को प्रबंधित नहीं कर सकें put the data on Google Cloud Storage (GCS) as public

इस परिदृश्य के लिए, आप On/Off Schedule के लिए सेटअप एडब्ल्यूएस EC2 उदाहरण की जरूरत है और उदाहरण to run a boot script using cloud-init आपके डोमेन कि इतने तरह GCS (c.storage.googleapis.com) की ओर इशारा किया के माध्यम से डेटा एकत्र करने दें:

wget -q --read-timeout=0.0 --waitretry=5 --tries=400 \\ 
--background http://your.domain.com/yourfile?q=XXX... 

जीसीएस से डेटा रखने के बाद, एडब्ल्यूएस इन विशिष्ट कार्यों को निष्पादित कर सकता है। डेटा को साफ करने के लिए जीएई को आग लगाना चाहिए और परिणाम को जीसीएस में वापस लाने के लिए तैयार होना चाहिए ताकि आपके मोबाइल एप्लिकेशन के बैक एंड के रूप में इस्तेमाल किया जा सके।

निम्नलिखित कुछ विकल्पों पर विचार करने के लिए कर रहे हैं:

  • आप को ध्यान देना चाहिए नहीं सभी EC2 प्रकार के चालू/बंद अनुसूची के लिए उपयुक्त हैं कि। मैं आप AWS Lambda EC2 के बिना कार्य करने के लिए सेट कर सकते हैं, तो सेटअप EC2 करने की कोई जरूरत हो सकती है/बंद अनुसूची
  • के लिए EC2-VPC/EBS उपयोग करने के लिए सेटअप एडब्ल्यूएस EC2 उदाहरण के लिए यदि आप चाहते हैं सलाह देते हैं। लागत सस्ता है, आमतौर पर 128 सेकंड तक मेमोरी खपत के साथ 3 सेकंड से कम समय के लिए चलने वाला कार्य आमतौर पर $ 0.0004 यूएसडी/माह
  • जीएई में अपना आवेदन पुनर्व्यवस्थित करने और एडब्ल्यूजी को कुछ करने के लिए सेट करने के परिणामस्वरूप कार्य, अंत में यह आपकी बिलिंग दरें बढ़ा सकता है, to optimize the instance class in GAE पर आज़माएं।
संबंधित मुद्दे