मैं ट्विस्टेड में एक नेटवर्क अनुप्रयोग विकसित कर रहा हूं, जिसमें से एक Django में लिखा गया एक वेब इंटरफ़ेस शामिल है।मुड़: एक थ्रेडपूल बनाना और फिर डिमोनिज़िंग की वजह से अनौपचारिक लटकती है
मैं वेब इंटरफ़ेस होस्ट करने के लिए ट्विस्ट के डब्लूएसजीआई सर्वर का उपयोग करना चाहता हूं, और मैंने twistd
का उपयोग करने की अनुमति देने के लिए एक "टैप" प्लगइन लिखा है।
-n
ध्वज (डिमननाइज़ नहीं करें) के साथ सर्वर चलाते समय सब ठीक काम करता है, लेकिन जब यह ध्वज हटा दिया जाता है तो सर्वर अनुरोधों का जवाब नहीं देता है, और कोई संदेश लॉग नहीं होता है (हालांकि सर्वर है अभी भी दौड़ रहा है)।
एक bug on Twisted's Trac है जो वास्तव में समस्या का वर्णन करने लगता है, और मेरी प्लगइन code referenced in the ticket पर आधारित होती है।
दुर्भाग्यवश, समस्या को ठीक नहीं किया गया है - और यह लगभग एक साल पहले उठाया गया था।
मैं एक ThreadPoolService
वर्ग है, जो Service
प्रदान करता है और शुरू होता है बनाने के लिए प्रयास किया है एक ThreadPool
दिया जब startService
कहा जाता है:
class ThreadPoolService(service.Service):
def __init__(self, pool):
self.pool = pool
def startService(self):
super(ThreadPoolService, self).startService()
self.pool.start()
def stopService(self):
super(ThreadPoolService, self).stopService()
self.pool.stop()
हालांकि, मुड़ बिल्कुल startService
विधि बुला जा करने के लिए प्रतीत नहीं होता। मुझे लगता है कि समस्या यह है कि "टैप" प्लगइन के साथ, ServiceMaker
केवल एक सेवा शुरू करने के लिए लौट सकता है - और उसी एप्लिकेशन से संबंधित किसी भी अन्य व्यक्ति को प्रारंभ नहीं किया जा सकता है। जाहिर है, मैं TCPServer
सेवा लौट रहा हूं जिसमें डब्लूएसजीआई रूट शामिल है।
इस बिंदु पर, मैंने कुछ ईंट की दीवार पर कुछ हद तक मारा है। क्या किसी के पास कोई विचार है कि मैं इस मुद्दे के आसपास कैसे काम कर सकता हूं?
यह सही है। मुझे नहीं पता कि मैंने इसे दस्तावेज में क्यों नहीं देखा, लेकिन यह एक आकर्षण की तरह काम करता है। धन्यवाद! –