[Twisted-web] Assync method on render_POST(self,request)

João Ricardo Mattos e Silva joaoricardo000 at gmail.com
Thu Feb 16 07:26:07 EST 2012


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-web/attachments/20120216/6f852dc1/attachment-0001.htm 


More information about the Twisted-web mailing list