Ist Tornado wirklich blockierungsfrei?

Tornado wirbt selbst als "ein relativ einfaches, nicht blockierend web server framework "und wurde entwickelt, um das C10k-Problem zu lösen. Als ich jedoch den Datenbank-Wrapper betrachtete, der MySQLdb umschließt, stieß ich auf folgenden Code:

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

Soweit ich weiß, ruft MySQLdb auf, das auf @ aufbaulibmysqlclient, sind blockiert.

Habe ich recht, wenn ich daran denke, dass eine lang andauernde Abfrage den gesamten Tornado-Server so lange nicht mehr reagiert, bis er fertig ist, oder ob der Code magisch ist?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage