Tornado é realmente sem bloqueio?
O Tornado se anuncia como "um relativamente simples,sem bloqueio framework do servidor web "e foi projetado para resolver o problema do C10k. No entanto, olhando para o invólucro do banco de dados, que envolve o MySQLdb, me deparei com o seguinte trecho de código:
def _execute(self, cursor, query, parameters):
try:
return cursor.execute(query, parameters)
except OperationalError:
logging.error("Error connecting to MySQL on %s", self.host)
self.close()
raise
Tanto quanto eu sei, chama para o MySQLdb, que é construído sobrelibmysqlclient
, estão bloqueando.
Estou certo ao pensar que uma consulta de longa duração tornaria todo o servidor Tornado sem resposta até que ele termine ou exista mágica no código?