Я пишу tcp-сервер, который использует gevent для обработки данных клиента, и использую sqlalchemy + pymysql для работы с базой данных mysql.Там могут подключаться тысячи клиентов, мой сервер получает некоторые данные и затем записывает их в базу данных.Но мой сервер сообщает о некоторых исключениях, и после запуска в течение одного дня он перестает работать.
Апр 05 11:13:43 python3 [2684]: ОШИБКАfile: pool.py [строка: 718]: исключение во время сброса или подобное Апр 05 11:13:43 python3 [2684]: трассировка (последний вызов был последним): апр 05 11:13:43 python3 [2684]: File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py ", строка 709, в _finalize_fairy 05 апреля 11:13:43 python3 [2684]: fairy._reset (pool) апр. 05 11:13: 43 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", строка 880, в _reset 05 апреля 11:13:43 python3 [2684]: пул._dialect.do_rollback (self) Apr 05 11:13:43 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/base.py", строка 1805, вdo_rollback апр. 05 11:13:43 python3 [2684]: dbapi_connection.rollback () апр 05 11:13:43 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/pymysql/connections.py ", строка 432, в откате Апр 05 11:13:43 python3 [2684]: self._read_ok_packet () апр. 05 11:13:43 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", строка 396, в _read_ok_packet апр.05 11:13:43 python3 [2684]: pkt = self._read_packet () апр. 05 11:13:43 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/pymysql/connections.py ", строка 656, в _read_packet апр. 05 11:13:43 python3 [2684]: packet_header = self._read_bytes (4) апр. 05 11:13:43 python3 [2684]: файл" / usr / local / lib /python3.7 / site-packages / pymysql / connections.py ", строка 690, в _read_bytes 05 апр. 11:13:43 python3 [2684]: data = self._rfile.read (num_bytes) апр. 05 11:13:43 python3[2684]: файл "/usr/local/lib/python3.7/socket.py", строка 589, в readinto 05 апреля, 11:13:43 python3 [2684]: вернуть self._sock.recv_into (b) 5 апреля11:13:43 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/gevent/_socket3.py", строка 433, в recv_into 05 апреля, 11:13:43 python3 [2684]: self._wait (self._read_event) 05 апр. 11:13:43 python3 [2684]: файл "src / gevent / _hub_primit"ives.py ", строка 265, в gevent.hub_primitives.wait_on_socket 05 апр. 11:13:43 python3 [2684]: файл" src / gevent / _hub_primitives.py ", строка 266, в gevent .__ hub_primitives.wait_on_socket апр. 05 11:13:43 python3 [2684]: файл "src / gevent / _hub_primitives.py", строка 252, в gevent .__ hub_primitives._primitive_wait апр. 05 11:13:43 python3 [2684]: файл "src / gevent / _hub_primitives.py", строка 46, в gevent .__ hub_primitives.WaitOperationsGreenlet.wait 05 апр. 11:13:43 python3 [2684]: Файл "src / gevent / _hub_primitives.py", строка 46, в gevent .__ hub_primitives.WaitOperationsGreenlet.wait 05 апреля 11:13:43 python3 [2684]: файл "src / gevent / _hub_primitives.py", строка 55, в gevent .__ hub_primitives.WaitOperationsGreenlet.wait апр. 05 11:13:43 python3 [2684]: файл "src / gevent / _waiter.py ", строка 151, в gevent .__ waiter.Waiter.get 05 апр. 11:13:43 python3 [2684]: файл" src / gevent / _greenlet_primitives.py ", строка 59, в gevent .__ greenlet_primitives.SwitchOutGreenletWithLoop.switch апр. 0511:13:43 python3 [2684]: файл "src / gevent / _greenlet_primitives.py ", строка 59, в gevent .__ greenlet_primitives.SwitchOutGreenletWithLoop.switch апр. 05 11:13:43 python3 [2684]: файл" src / gevent / _greenlet_primitives.py ", строка 62, в gevent .__ greenlet_primitives.SwitchithLoop.sАпр 05 11:13:43 python3 [2684]: Файл "src / gevent / _greenlet_primitives.py", строка 65, в gevent .__ greenlet_primitives.SwitchOutGreenletWithLoop.switch_out Апр 05 11:13:43 python3 [2684]: Файл "src /gevent / _greenlet_primitives.py ", строка 66, в gevent .__ greenlet_primitives.SwitchOutGreenletWithLoop.switch_out Apr05 11:13:43 python3 [2684]: gevent.exceptions.BlockingSwitchOutError: невозможно вызвать функцию блокировки в обратном вызове цикла событий 05 апреля 11:13:50 python3 [2684]: файл ERROR: pool.py [строка: 718]: Исключение во время сброса или аналогичное. Апр 05 11:13:50 python3 [2684]: Трассировка (последний последний вызов): Апр 05 11:13:50 python3 [2684]: Файл "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py ", строка 709, в _finalize_fairy 05 апреля 11:13:50 python3 [2684]: fairy._reset (pool) апр. 05 11:13:50 python3 [2684]: файл" /usr / local / lib / python3.7 / site-packages / sqlalchemy / pool.py ", строка 880, в _reset 05 апреля 11:13:50 python3 [2684]: pool._dialect.do_rollback (self) апр 05 11:13:50 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/base.py", строка 1805, в do_rollback апр. 05, 11:13:50 python3 [2684]: dbapi_connection.rollback () 05 апреля 11:13:50 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", строка 432, в откате, апрель05 11:13:50 python3 [2684]: self._read_ok_packet () 05 апреля, 11:13:50 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", строка 396, в _read_ok_packet, 05 апреля11:13:50 python3 [2684]: pkt = self._read_packet () 05 апреля 11:13:50 python3 [2684]: файл "/usr/local/lib/python3.7/site-packages/pymysql/connections.py ", строка 656, в _read_packet апр. 05 11:13:50 python3 [2684]: packet_header = self._read_bytes (4) апр. 05 11:13:50 python3 [2684]: файл" / usr / local / lib / python3.7 / site-packages / pymysql / connections.py ", строка 690, в _read_bytes 05 апр. 11:13:50 python3 [2684]: data = self._rfile.read (num_bytes) апр. 05 11:13:50 python3 [2684]: файл "/usr/local/lib/python3.7/socket.py", строка 589, в readinto 05 апреля 11:13:50 python3 [2684]: вернуть self._sock.recv_into (b) 5 апреля 11: 13: 50 python3 [2684]: Файл "/usr/local/lib/python3.7/site-packages/gevent/_socket3.py", строка 433, в recv_into 05 апреля, 11:13:50 python3 [2684]:self._wait (self._read_event) 05 апр. 11:13:50 python3 [2684]: файл "src / gevent / _hub_primitives.py ", строка 265, в gevent .__ hub_primitives.wait_on_socket 05 апр. 11:13:50 python3 [2684]: файл" src / gevent / _hub_primitives.py ", строка 266, в gevent .__ hub_primitives.wait_on_socket апр. 05 11:13: 50 python3 [2684]: файл "src / gevent / _hub_primitives.py", строка 252, в gevent .__ hub_primitives._primitive_wait апр. 05 11:13:50 python3 [2684]: файл "src / gevent / _hub_primitives.py",строка 46, в gevent .__ hub_primitives.WaitOperationsGreenlet.wait 05 апр. 11:13:50 python3 [2684]: файл "src / gevent / _hub_primitives.py", строка 46, в gevent .__ hub_primitives.WaitOperationsGreenlet.wait апр. 05 11:13: 50 python3 [2684]: файл "src / gevent / _hub_primitives.py", строка 57, в gevent .__ hub_primitives.WaitOperationsGreenlet.wait апр. 05 11:13:50 python3 [2684]: gevent.exceptions.InvalidSwitchError: неверный переключатель в.CloudServer объект в 0x7f5fa93df630 >> (: (ожидается)