Удаленный хост принудительно разорвал существующее подключение (python)
у меня есть телеграмм бот, работающий асинхронно, но часто вылетают ошибки в консоль, как я понимаю, связанные с подключением. Иногда бот может упасть, иногда продолжить работать (не факт, что он падает из-за этих ошибок) Ошибки:
INFO:aiogram:Bot: BotEx [@BotEx]
INFO:aiogram.dispatcher.dispatcher:Start polling.
ERROR:asyncio:Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
File "C:\Users\Name\AppData\Local\Programs\Python\Python39\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\Name\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 162, in _call_connection_lost
self._sock.shutdown(socket.SHUT_RDWR)
ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
ERROR:asyncio:Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
File "C:\Users\Name\AppData\Local\Programs\Python\Python39\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\Name\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 162, in _call_connection_lost
self._sock.shutdown(socket.SHUT_RDWR)
ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
Код запуска бота с подключением к бд:
import logging
import asyncio
import sys
import aiomysql
import db
from aiomysql import create_pool
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram import Bot, Dispatcher, executor
import keyboards
from messages import MESSAGES
from settings import mysql
from config import USER, PASSWORD, HOST, PORT, DATABASE, TOKEN, PAYMENTS_PROVIDER_TOKEN
loop = asyncio.get_event_loop()
client = Bot(token=TOKEN, parse_mode='HTML')
dp = Dispatcher(client, storage=MemoryStorage(), loop=loop)
logging.basicConfig(level=logging.INFO)
async def db_config():
if not mysql.conn:
try:
mysql.conn = await create_pool(
host=HOST,
port=PORT,
user=USER,
password=PASSWORD,
db=DATABASE,
charset='utf8',
use_unicode=True,
loop=loop
)
except aiomysql.Error as e:
print(f'Error connecting: {e}')
sys.exit(1)
if __name__ == '__main__':
loop.run_until_complete(db_config())
from handlers import dp
executor.start_polling(dp, skip_updates=False)
Источник: Stack Overflow на русском