क्या पाइथन/जावा के एसिंक डेटास्टोर एपीआई में कोई एनालॉग है? या क्या कोई सिर्फ go
कीवर्ड के साथ सामान्य API का उपयोग कर सकता है?जीएई गो - Async डेटास्टोर एपीआई?
उत्तर
किसी भी एपइंजिन सेवा के लिए पाइथन या जावा एसिंक्रोनस एपीआई के बराबर कोई गो नहीं है। वास्तव में, गो मानक पुस्तकालय में मानक एसिंक्रोनस शैली में कुछ भी नहीं है। इसका कारण यह है कि गो में, आप अवरुद्ध शैली का उपयोग करके फ़ंक्शन लिखते हैं और आवश्यकता के आधार पर कुछ बुनियादी समवर्ती प्राइमेटिव का उपयोग करके उन्हें लिखें। जबकि आप dastore.Get
कॉल की शुरुआत में go
को केवल तभी नहीं ले सकते हैं, यह अभी भी अपेक्षाकृत सरल है। निम्नलिखित, काल्पनिक उदाहरण पर विचार करें:
func loadUser(ctx appengine.Context, name strings) (*User, err) {
var u User
var entries []*Entry
done := make(chan error)
go func() {
// Load the main features of the User
key := datastore.NewKey(ctx, "user", name, 0, nil)
done <- datastore.Get(ctx, key)
}()
go func() {
// Load the entries associated with the user
q := datastore.NewQuery("entries").Filter("user", name)
keys, err := q.GetAll(ctx, &entries)
for i, k := range keys {
entries[i].key = k
}
done <- err
}()
success := true
// Wait for the queries to finish in parallel
for i := 0; i < 2 /* count the funcs above */; i++ {
if err := <-done; err != nil {
ctx.Errorf("loaduser: %s", err)
success = false
}
}
if !success {
return
}
// maybe more stuff here
}
यह वही दृष्टिकोण में ऐसी हर संदर्भ में आप एक से अधिक बात यह है कि एक ही समय में थोड़ा समय लग सकता है, चाहे वह एक डेटासंग्रह कॉल है चलाने की आवश्यकता में इस्तेमाल किया जा सकता है, urlfetch, फ़ाइल लोड, आदि
गो में एसिंक के लिए कोई स्पष्ट API नहीं है। आपको इसके बजाय दिनचर्या का उपयोग करना चाहिए। मैंने इस पर कोई स्रोत नहीं देखा है, लेकिन मुझे संदेह है कि एसिंक एपीआई वहां नहीं है क्योंकि दिनचर्या का उपयोग करना कितना आसान है।
- 1. फ्लशिंग पाइथन जीएई डेटास्टोर जब इकाई परीक्षण
- 2. आंशिक मिलान जीएई खोज एपीआई
- 3. जीएई डेटास्टोर में दयालुता और संस्था के बीच अंतर?
- 4. सार्वजनिक एपीआई एक्सेस डेटास्टोर जावास्क्रिप्ट एपीआई
- 5. Appengine खोज एपीआई बनाम डेटास्टोर
- 6. पायथन हटाएं एक बाकी एपीआई (जीएई पर)
- 7. GAE डेटास्टोर
- 8. App इंजन (अजगर) डेटास्टोर Precall एपीआई हुक
- 9. कनेक्टिंग ऐपइंजिन डेटास्टोर और खोज एपीआई
- 10. Google appengine डेटास्टोर विकल्प?
- 11. डेटास्टोर
- 12. डेटास्टोर
- 13. डेटास्टोर
- 14. गो
- 15. तेज ऐप इंजन विकास डेटास्टोर वैकल्पिक
- 16. गो
- 17. कैसंड्रा क्लाइंट एपीआई ऐप इंजन डेटास्टोर एपीआई के समान ही है?
- 18. जीएई ब्लोबस्टोर
- 19. जीएई (जावा)
- 20. Google डेटास्टोर (जीएई) पर पढ़ने/लिखने के प्रदर्शन विचारों की व्याख्या?
- 21. जीएई स्टोरेज कुंजी बनाम स्ट्रिंग आईडी
- 22. क्या आईएफ़ के लिए जीएई चैनल-एपीआई होना संभव है?
- 23. Google ऐप इंजन डेटास्टोर एन्कोडिंग?
- 24. Async विंडोज फोन वेब एक्सेस एपीआई
- 25. ServiceStack 'नई' एपीआई और async का इंतजार
- 26. गोस भाषा में कैसंद्रा डेटास्टोर क्लाइंट
- 27. जीएई गो - "इस अनुरोध ने आपके आवेदन के लिए एक नई प्रक्रिया शुरू की है ..."
- 28. जीएई गो - गैर-मौजूद इकाई कुंजी के साथ GetMulti का उपयोग कैसे करें?
- 29. Google डेटास्टोर
- 30. ऐपइंजिन डेटास्टोर
यह काम कैसे दिया जाता है कि जीएई पर गो ऐप्स को एक थ्रेड पर चलाया जाता है? –
गो रनटाइम मल्टीप्लेक्स कई goroutines एक एकल ऑपरेटिंग सिस्टम थ्रेड पर। वास्तव में, ऐपइंजिन के बाहर भी डिफ़ॉल्ट GOMAXPROCS = 1 है, जिसका अर्थ है कि केवल एक goroutine सक्रिय रूप से आपका कोड चलाएगा। इसके बावजूद, रनटाइम goroutines के बीच आगे और आगे स्वैप करेगा जब वे संवाद, ब्लॉक, एक syscall निष्पादित, या ताला पर इंतजार कर रहे हैं। –
धन्यवाद। तो क्या वे एक प्रदर्शन लाभ भी हैं यदि वे एक थ्रेड पर चल रहे हैं? मेरी अज्ञान क्षमा करें। संपादित करें: मुझे लगता है कि प्रदर्शन लाभ गो निष्पादन कोड से आएगा, जबकि यह आई/ओ कॉल वापस आने की प्रतीक्षा कर रहा है? –