내 응용 프로그램은 twisted "백엔드 서버"와 django "미들웨어"로 구성됩니다. 꼬인 부분은 데이터베이스에 액세스하고 www 또는 xml을 통해 콘텐츠를 제공하기 위해 .tac file에 설정된 collection of services입니다. django 부분은 웹 사이트에서 사용자와의 모든 상호 작용을 처리합니다.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 signal을 사용하려고합니다. 신호 작품을 내보내지만, 정말 신호를 대상으로 제공하는 트위스트 객체에 대한 참조를 얻는 방법을 볼 수 없습니다 :- 서비스가 모든
app.tac
에서 인스턴스화하고 그것을 가져올 수하지 않는 것 이러한 파일에서 이러한 개체를 다시 또는 트위스트 된 응용 프로그램을 실행하는 동안 그들에 대한 참조를 다시 얻으십시오. #twisted
IRC 채널에서 장고 앱에 내 신호의 대상이 될 것으로 예상되는 서비스에 대한 참조를 전달하는 조언을 받았지만 위의 코드 스 니펫에 나와있는 것처럼 장고 앱 단순히WSGIHandler
객체이며 서비스 참조를 어떻게 든 삽입 할 수 있다고해도 앱 내에서 액세스하는 방법을 알 수 없습니다. 또한 이러한 접근 방식은 백엔드와 미들웨어를 오히려 단단히 묶을 것입니다. 이것은 신호가 처음부터 예방하려고하는 것입니다.
어떻게 장고에서 트위스트로 알림을 보낼 수 있습니까?