update mac instalar example python asynchronous tornado

mac - tornado python production



Tornado AsyncHTTPClient fetch callback: ParĂ¡metros extra? (2)

Necesitas "unir" tus argumentos adicionales. Utilice functools.partial, como este:

items = .. iteration = .. cb = functools.partial(self.resp, items, iteration)

o podrías usar lambda, así:

cb = lambda : self.resp(items, iteration)

(probablemente necesite agregar la firma a def resp (self, items, iteration, response) :)

Soy un poco nuevo en todo este juego asíncrono (en su mayoría ha sido un tipo de Django), pero me preguntaba: ¿cómo puedo pasar parámetros extra a la devolución de llamadas de AsyncHTTPClient.fetch de Tornado? Por ejemplo, estoy rastreando el número de veces que se ha llamado una devolución de llamada (para esperar hasta que un número determinado se haya ejecutado antes de trabajar en los datos), y me gustaría hacer algo como:

def getPage(self, items,iteration): http = AsyncHTTPClient() http.fetch(feed, callback=self.resp(items,iteration)) def resp(self, response, items, iteration): #do stuff self.finish()


También puede considerar el decorador gen.coroutine si llama a fetch desde dentro de un RequestHandler. en ese caso, no es necesario agregar parámetros adicionales a la devolución de llamada porque tiene el resultado visible en el mismo ámbito que la llamada a buscar.