Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Twisted:创建一个线程池,然后对其进行后台监控会导致无信息的挂起_Python_Django_Twisted_Threadpool_Wsgi - Fatal编程技术网

Python Twisted:创建一个线程池,然后对其进行后台监控会导致无信息的挂起

Python Twisted:创建一个线程池,然后对其进行后台监控会导致无信息的挂起,python,django,twisted,threadpool,wsgi,Python,Django,Twisted,Threadpool,Wsgi,我正在用Twisted开发一个网络应用程序,其中一部分由Django编写的web界面组成 我希望使用Twisted的WSGI服务器来托管web界面,并且我已经编写了一个“tap”插件,允许我使用twistd 当使用-n标志运行服务器时(不要后台监控),一切正常,但当删除此标志时,服务器根本不响应请求,并且没有记录任何消息(尽管服务器仍在运行) 有一个插件似乎准确地描述了这个问题,而我的插件恰好基于 不幸的是,这个问题还没有得到解决,而且它几乎是在一年前提出的 我试图创建一个ThreadPoolS

我正在用Twisted开发一个网络应用程序,其中一部分由Django编写的web界面组成

我希望使用Twisted的WSGI服务器来托管web界面,并且我已经编写了一个“tap”插件,允许我使用
twistd

当使用
-n
标志运行服务器时(不要后台监控),一切正常,但当删除此标志时,服务器根本不响应请求,并且没有记录任何消息(尽管服务器仍在运行)

有一个插件似乎准确地描述了这个问题,而我的插件恰好基于

不幸的是,这个问题还没有得到解决,而且它几乎是在一年前提出的

我试图创建一个
ThreadPoolService
类,该类扩展
Service
并在调用
startService
时启动给定的
ThreadPool

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()
然而,Twisted似乎根本没有调用
startService
方法。我认为问题在于,使用“tap”插件,
ServiceMaker
只能返回一个要启动的服务,而属于同一应用程序的任何其他服务都不会启动。显然,我返回的是一个
TCPServer
服务,其中包含WSGI根目录

在这一点上,我碰到了一些砖墙。有人对我如何解决这个问题有什么想法吗?

请从您的
服务制造商那里返回一个
;一个包括
ThreadPoolService
以及主应用程序服务的应用程序。组装这种东西的API非常简单:

multi = MultiService()
mine = TCPServer(...) # your existing application service
threads = ThreadPoolService()
mine.setServiceParent(multi)
threads.setServiceParent(multi)
return multi

鉴于您已经在Twisted中找到了解决这一令人困惑的问题的方法,我期待着看到您的补丁:)。

这太完美了。我不知道为什么我没有在文档中看到这一点,但它很有魅力。非常感谢。