【发布时间】:2024-01-07 17:31:01
【问题描述】:
我的应用程序由一个twisted“后端服务器”和一个django“中间件”组成。扭曲的部分是collection of services 设置在.tac file 中以访问数据库,通过www 或xml 提供内容。 django 部分处理网站上与用户的所有交互。
twisted Web 服务将 django WSGI 应用程序实例化为我认为的 canonical way:
# .../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 signal。发送信号有效,但我真的不知道如何获取对扭曲对象的引用以用作信号的目标:
- 这些服务都在
app.tac中实例化,并且一旦扭曲的应用程序运行,似乎无法从该文件导入这些对象或重新获得对它们的引用。 - 在
#twistedIRC 频道上,当我实例化该服务时,我得到了建议,该服务的引用应该是我的信号的目标,但正如上面的代码 sn-p 所示,django 应用程序只是一个WSGIHandler对象,即使我设法以某种方式将服务引用注入其中,我也看不到如何从应用程序内访问它。此外,这种方法会将后端和中间件紧密地耦合在一起——这是信号首先要防止的。
如何从 Django 向 Twisted 发送通知?
【问题讨论】:
标签: python django twisted signals django-signals