내 코드는 다음과 같습니다꼬인 비 차단 방법 - 방법?
... # class Site(Resource)
def render_POST(self,request)
otherclass.doAssync(request.args)
print '1'
return "done" #that returns the HTTP response, always the same.
...
def doAssync(self,msg):
d = defer.Deferred()
reactor.callLater(0,self.doStuff,d,msg)
d.addCallback(self.sucess)
def doStuff(self,d,msg):
# do some stuff
time.sleep(2) #just for example
d.callback('ok')
def sucess(msg):
print msg
출력 :
1
확인
, 지금까지 너무 좋아하지만, HTTP 응답 (귀국일 ' done '), 지연 후에 만 발생합니다 (time.sleep (2)). 브라우저에서 2 초 동안 '로드 중'을 유지하므로이 사실을 알 수 있습니다.
내가 뭘 잘못하고 있니?
답변 찾기 : http://stackoverflow.com/questions/6759115/asynchronous-wsgi-with-twisted – joaoricardo000
Twisted API를 사용하는 스레드 (예 : d.callback-in을 포함)에주의하십시오.이 버전의 코드는 잘못된 스레드에서'd.callback'을 사용합니다. 이렇게하면 모든 콜백이 잘못된 스레드에서 실행되므로 결과를 인쇄하는 것 이상의 작업을 수행하는 즉시 무언가가 깨질 수 있습니다. –