16 Feb 2012 13:26
Assync method on render_POST(self,request)
João Ricardo Mattos e Silva <joaoricardo000 <at> gmail.com>
2012-02-16 12:26:07 GMT
2012-02-16 12:26:07 GMT
My code looks like this:
... # 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
The output:
1
ok
So far, so good, but, the HTTP response (return 'done'), only happens after the delay (time.sleep(2)). I can tell this, because the browser keeps 'loading' for 2 seconds.
What am I doing wrong?
Found some answer saying that wsgi twisted does not suport assync, and maybe Tornado could do this. ... is that true?
Thanks anyway!
Att,
João Ricardo Mattos e Silva
Graduando em Ciência da Computação na Universidade Federal de Santa Catarina
Cel: +55 (48) 96190063 | Skype: jricardomsilva | Msn: joaoricardo <at> globalite.com.br
_______________________________________________ Twisted-web mailing list Twisted-web <at> twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
RSS Feed