refactor connection_handler in TelegramClient: increase wait time to 5 seconds before restart, implement process termination and forking for more reliable restarts

This commit is contained in:
vvzvlad
2025-06-10 03:58:33 +03:00
parent 688b9e1927
commit 2c9ebf139f
+12 -3
View File
@@ -83,10 +83,19 @@ class TelegramClient:
# Добавляем задержку, чтобы предыдущий процесс успел завершиться
# и освободить порт и другие ресурсы
logger.info("connection_handler: waiting for resources to be freed before restart")
time.sleep(3)
time.sleep(5) # Увеличиваем до 5 секунд
# Use os.execv to restart the process with the same arguments
os.execv(sys.executable, [sys.executable] + sys.argv)
# Принудительно завершаем текущий процесс для освобождения порта
logger.info("connection_handler: killing current process before restart")
pid = os.getpid()
# Используем fork и exec для более надежного перезапуска
if os.fork() > 0:
# Родительский процесс
sys.exit(0)
else:
# Дочерний процесс
time.sleep(1) # Даем родителю умереть
os.execv(sys.executable, [sys.executable] + sys.argv)
except Exception as e:
logger.error(f"connection_handler: error during restart: {str(e)}")
# Emergency termination in case of restart failure