Мое приложение состоит из витого"внутреннего сервера" и django"промежуточного программного обеспечения".Скрученная часть представляет собой набор служб , настроенный в .tac файле для доступа к базе данных, предоставления содержимого через www или xml.Часть django обрабатывает все взаимодействия с пользователем на веб-сайте.
Искривленный веб-сервис создает приложение WSGI django, как я думаю, каноническим способом :
# .../wsgi/app.py:
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
# .../web_service.py:
# (twisted imports...)
from wsgi.app import application
class WebServer(Resource):
def __init__(self):
Resource.__init__(self)
self.wsgi_resource = WSGIResource(reactor,
reactor.getThreadPool(),
application)
Теперь мне нужно отправить уведомление, что, например, пользователь выполнил вход из части django в витую часть, в идеале, в одну из служб.Я пытаюсь использовать для этой цели сигнал django .Отправка сигнала работает, но я не вижу, как получить ссылку на витой объект, который будет служить целью для сигнала:
- Все службы создаются в
app.tac
, и это делаетКажется невозможным импортировать эти объекты из этого файла или повторно получить ссылку на них после запуска витого приложения. - На IRC-канале
#twisted
я получил совет передать ссылку на сервисэто должно быть целью для моего сигнала приложению django, когда я его создаю, но, как показывает приведенный выше фрагмент кода, приложение django - это просто объект WSGIHandler
, и даже если мне удастся каким-то образом вставить ссылку на службу в негоЯ не вижу, как получить к нему доступ из приложения.Кроме того, этот подход довольно тесно связал бы бэкэнд и промежуточное программное обеспечение - что именно этот сигнал намеревается предотвратить в первую очередь.
Как отправить уведомление из Django в Twisted?