Как Вы управляете тайм-аутами MySQL от SQLAlchemy?

Я взял содержание с помощью JavaScript и создал окно, которое я мог распечатать в земельном участке...

9
задан Jacob Gabrielson 30 July 2009 в 21:59
поделиться

3 ответа

это невозможно из-за того, как работает TCP. если другой компьютер отключится от сети, он просто перестанет отвечать на входящие пакеты. «18 секунд», которые вы видите, - это что-то в вашем стеке TCP, истекшее из-за отсутствия ответа.

единственный способ добиться желаемого поведения - это заставить компьютер сгенерировать сообщение «я умираю» непосредственно перед он умирает. что в случае неожиданной смерти совершенно невозможно.

слышали ли вы когда-нибудь о сердцебиении? это пакеты, которые системы высокой доступности отправляют друг другу каждую секунду или реже, чтобы сообщить другой стороне, что они все еще существуют. если вы хотите, чтобы ваше приложение «немедленно» узнало, что сервер ушел, вы сначала должны решить, как долго это «немедленно» (1 секунда, 200 мс и т. д.)

4
ответ дан 4 December 2019 в 23:40
поделиться

Could this be a bug in the mysql/python connector? https://bugs.launchpad.net/myconnpy/+bug/328998 which says the time out is hard-coded to 10 seconds.

To really see where the breakdown is, you could use a packet sniffer to checkout the conversation between the server and the client. wireshark + tcpdump works great for this kind of thing.

1
ответ дан 4 December 2019 в 23:40
поделиться

Я считаю, что вы столкнулись с совершенно другой ошибкой, это ужасная ошибка «mysql ушел». Если я прав, решение состоит в том, чтобы обновить драйвер mysqldb до более новой версии в качестве ошибки. были внесены исправления в драйвер.

Если по какой-то причине вы не можете / не хотите обновлять, попробуйте исправление SA для этого

db= create_engine('mysql://root@localhost/test', pool_recycle=True) 
1
ответ дан 4 December 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: