एक बवंडर अनुरोध हैंडलर में यदि मुझे फ़ंक्शन foo() को कॉल करना है जो उपयोगकर्ता को वापस लौटाता है, तो यह पहले उपयोगकर्ता को परिणाम वापस करने के लिए समझ में आता है और फिर foo को कॉल करता है()। क्या यह आसानी से टर्ननाडो (या कुछ तीसरे पक्ष के पैकेज के साथ) में करना संभव है?वापसी के बाद अनुरोध हैंडलर में टोरनाडो प्रक्रिया डेटा
उत्तर
नहीं, यह बॉक्स के बाहर "आसान" नहीं है। आप क्या कह रहे हैं "आग और भूल जाओ"। यहां तक कि यदि आप अनुरोध को खेत के लिए थ्रेड पूल का उपयोग करते हैं, तो वह थ्रेड पूल मुख्य पायथन प्रक्रिया से संबंधित होगा जो टोरनाडो से संबंधित है।
सर्वोत्तम दृष्टिकोण एक संदेश कतार है। गाजर की तरह कुछ। इस तरह, मान लें कि आपके पास एक ऐसा पृष्ठ है जहां उपयोगकर्ता बड़ी रिपोर्ट उत्पन्न करने के लिए निष्पादित कर सकते हैं, आप इसे संदेश कतार में शुरू कर सकते हैं और फिर टोरनाडो अनुरोध को समाप्त कर सकते हैं और कुछ AJAX जादू और अन्य चाल (टोरनाडो के दायरे से बाहर) के साथ आप कर सकते हैं वापस बैठो और संदेश कतार समाप्त होने तक प्रतीक्षा करें (जो तकनीकी रूप से एक अलग भौतिक स्थान में वितरित सर्वर पर हो रहा है)।
ioloop.add_callback, टोरनाडो अगले IOLoop पुनरावृत्ति में कॉलबैक निष्पादित करेगा।
खराब सलाह चेतावनी: आप मल्टीप्रोसेसिंग का उपयोग कर सकते हैं।
http://docs.python.org/library/multiprocessing.html
सावधान रहना है कि आप अपने डेटाबेस कनेक्शन के सभी बंद (पैदा कोड में) और जो कुछ भी बाकी बवंडर कर सकता है जब वह सामान्य रूप से एक उपप्रक्रिया के बिना एक अनुरोध के पूरे होने से करते हैं। अन्य उत्तरों बेहतर ध्वनि। लेकिन, आप यह कर सकते हैं। ऐसा मत करो।
यह अत्यंत आसान है:
class Handler(tornado.web.RequestHandler):
def get(self):
self.write('response')
self.finish() # Connection is now closed
foo()
क्या यह आईओ लूप को अवरुद्ध करेगा? – raylu
हां, अगर foo() IO को अवरुद्ध करता है। नहीं, अगर foo() नहीं करता है। अंगूठे का नियम: अगर foo() IOStream का उपयोग करता है तो यह गैर-अवरुद्ध है। यदि यह IOStream के बिना सॉकेट का उपयोग करता है, तो यह अवरुद्ध हो रहा है। –
- 1. टोरनाडो असिंक्रोनस हैंडलर
- 2. टोरनाडो
- 3. टोरनाडो
- 4. टोरनाडो एसिंक हैंडलर में सह-रूटीन के रूप में एक साधारण पायथन जनरेटर का उपयोग करना?
- 5. PHP - वापसी के बाद तोड़ें?
- 6. मैं टोरनाडो अनुरोध के क्लाइंट आईपी कैसे प्राप्त करूं?
- 7. संग्रहीत प्रक्रिया में END के बाद विवरण
- 8. एक बार यूआरएल अनुरोध करने के बाद डेटा धक्का देना
- 9. संग्रहीत प्रक्रिया में वापसी की गणना
- 10. SQL सर्वर संग्रहीत प्रक्रिया में वापसी मान
- 11. HTTPS अनुरोध में, Request.IsSecureConnection वापसी झूठी
- 12. सीएलआर संग्रहीत प्रक्रिया में वैश्विक अपवाद हैंडलर
- 13. पीडीओ संग्रहीत प्रक्रिया वापसी मूल्य
- 14. अनुरोध के लिए हैंडलर नहीं मिला:
- 15. अनुरोध क्या है .getParameter वापसी?
- 16. टोरनाडो पर्यवेक्षक
- 17. टोरनाडो वेब फ्रेमवर्क MySQL कनेक्शन हैंडलिंग
- 18. प्रक्रिया कच्चे HTTP अनुरोध
- 19. वापसी मान जाओ के बाद setTimeout
- 20. एसक्यूएल सर्वर संग्रहित प्रक्रिया दुकान वापसी मान
- 21. संग्रहीत प्रक्रिया के बारे में एमएसडीएन डिफ़ॉल्ट वापसी मूल्य
- 22. PHP में AJAX अनुरोध का जवाब देने के बाद प्रक्रिया को कैसे जारी रखें?
- 23. सिग्नल हैंडलर से साझा डेटा तक पहुंच
- 24. बाद के pcntl_signal सिग्नल हैंडलर को लात मारना नहीं
- 25. टोरनाडो - '_xsrf' तर्क POST
- 26. उप-प्रक्रिया कैसे प्राप्त करें 'वापसी कोड
- 27. stringWithContentsOfFile और initWithContentsOfFile कई रनों के बाद शून्य वापसी
- 28. होशेचेमा ("कॉलम") + वापसी डेटा टाइप;
- 29. AJAX अनुरोध हैंडलर टॉरनाडो कैसे चलाएं
- 30. बोतल jQuery अनुरोध डेटा से कोई डेटा नहीं मिल रहा
यह अत्यंत आसान है; मैं एक जवाब जोड़ूंगा। –