Tornado рекламирует себя как "относительно простую, неблокирующую структуру веб-сервера" и был разработан для решения проблемы C10k. Однако, глядя на свою оболочку базы данных, которая обертывает MySQLdb, я наткнулся на следующий фрагмент кода:
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
Насколько я знаю, вызовы MySQLdb, которые построены поверх libmysqlclient
, блокируются .
Правильно ли я думаю, что долговременный запрос сделает весь сервер Tornado безответственным до тех пор, пока он не завершится или не будет волшебным кодом?