6

यह इतना छोड़ दी और जब उसके कोड बदल दिया गया है समझा जा सकता है एक आवेदन को पुनः आरंभ करने की जरूरत है, अजगर में अत्यधिक एकीकृत कोड बनाने के लिए आसान है।पायथन कोड कैसे लिखना है जिसे एप्लिकेशन छोड़ने के बिना स्वयं अपडेट किया जा सकता है?

हालांकि, यह निश्चित रूप से कुछ रणनीतियों और मॉडल मौजूद हैं तो यह छोड़ दिया और पुनः आरंभ करने की आवश्यकता के बिना ऑन-द-मक्खी अद्यतन किया जा सकता कोड के कुछ हिस्सों को अलग करने में सक्षम होना चाहिए।

मैं कई सुविधाओं पर काम कर रहा हूँ अनुप्रयोगों स्वतंत्र पृष्ठभूमि कार्य है कि मुख्य आवेदन करने के लिए, वर्तमान स्थिति की जानकारी में बात करेंगे और यह भी वर्तमान स्थिति के आधार कार्य करने के लिए हिदायत हो जाएगा के लिए

। कई मायनों में इन पृष्ठभूमि कार्य स्वतंत्र कार्यक्रमों के रूप में देखा जा सकता है, सिर्फ इतना है कि वे मुख्य आवेदन और अन्य उपकरण, कार्य, आदि पर टॉप इसे बनाया के साथ codebase में से कुछ साझा करते हैं।

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

चूंकि मैं मल्टीथ्रेडिंग और एसिन्सीओ (पायथन 3.5 में) का लाभ लेने के साथ-साथ चीजों को स्टेटलेस बनाने का भी प्रयास करने के लिए उत्सुक हूं, ऐसा लगता है कि यहां कुछ दिलचस्प चीजें करने के लिए तर्कसंगत संभव है कि कम से कम कुछ से बचें नए कोड को घुमाने पर मजबूर कठोर पुनरारंभ होता है।

यह कैसे काम कर रहे बनाने के लिए के बारे में सुझावों और जानकारी के लिए संकेत के लिए बहुत आभारी होंगे।

+3

आपको [इस सवाल] में दिलचस्पी हो सकती है (https://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module) – CoryKramer

+0

धन्यवाद @CoryKramer, यह बिल्कुल है मैं जिस तरह की जानकारी ढूंढ रहा हूं। शानदार, इस से मैं शुरू में सोचा भी ऐसा करने के लिए आसान हो सकता है :) – tsvenson

+1

मैं कुप्पी विश्वास करते हैं और बवंडर दोनों इस तरह विशेषताएं हैं, तो आप के रूप में अच्छी तरह से अपने कोड पर एक नज़र ले सकता है। – dano

उत्तर

2

निर्मित एक समारोह reload() कि एक मॉड्यूल पुनः लोड होगा नहीं है, लेकिन यह गंदगी आसान है। आप क्या मॉड्यूल के पुराने संस्करण के द्वारा बनाई गई वस्तुओं के लिए संदर्भ रखती है के बारे में बहुत सावधान रहना होगा, और फिर जब आप मॉड्यूल को फिर से लोड उन की जगह के लिए सुनिश्चित हो चाहता हूँ।

मैं एक बहुत Django उपयोग करते हैं, और जब यह डिबग मोड में अपने वेब सर्वर चल रहा है, यह पूरे वेब सर्वर प्रक्रिया पुन: लोड जब भी कोई स्रोत फ़ाइल बदल जाता है। मैन्युअल पुनरारंभ और एक मॉड्यूल को फिर से लोड करने के बीच यह एक अच्छा समझौता है। परिवर्तन एक बार पुनः लोड करने को गति प्रदान करने के लिए

मैं इसे इस्तेमाल नहीं किया है, लेकिन watchdog फाइल सिस्टम की निगरानी के लिए उपयोगी हो सकता है।

संबंधित मुद्दे

 संबंधित मुद्दे