我正在開發Twisted中的網絡應用程序,其中的一部分包含用Django編寫的Web界面。Twisted:創建一個ThreadPool,然後守護進程導致無信息掛起
我希望使用Twisted的WSGI服務器來託管Web界面,並且我已經編寫了一個工作「輕擊」插件,以允許我使用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
只能返回一個要啓動的服務 - 並且不啓動屬於同一應用程序的任何其他服務。顯然,我返回一個包含WSGI根的TCPServer
服務。
在這一點上,我碰到了一些磚牆。有沒有人有任何想法可以解決這個問題?
這是完美的。我不知道爲什麼我沒有在文檔中看到它,但它的作用像一個魅力。謝謝! – 2011-02-02 19:15:57