Я занимаюсь разработкой сетевого приложения для Twisted, часть которого состоит из веб-интерфейса, написанного на Django.
Я хочу использовать WSGI-сервер Twisted для размещения веб-интерфейса, и я написал рабочийплагин «tap», позволяющий мне использовать twistd
.
. При запуске сервера с флагом -n
(не демонизировать) все работает нормально, но когда этот флаг удален, сервер не работаетотвечать на запросы вообще, и сообщения не регистрируются (хотя сервер все еще работает).
В Twisted Trac есть ошибка , которая, кажется, точно описывает проблему, и мойОказывается, плагин основан на коде , указанном в билете .
К сожалению, проблема не была устранена и была поднята почти год назад.
Я попытался создать класс 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()
Однако Twisted, похоже, не вызываетstartService
метод вообще.Я думаю, проблема в том, что с плагином «tap» ServiceMaker
может вернуть только одну службу, которую нужно запустить - и все остальные, принадлежащие к тому же приложению, не запускаются.Очевидно, я возвращаю сервис TCPServer
, который содержит корень WSGI.
На этом этапе я наткнулся на что-то вроде кирпичной стены.У кого-нибудь есть идеи, как мне обойти эту проблему?