エラー落ち軽減?

このコミットが含まれているのは:
2025-12-03 00:59:54 +09:00
コミット ca250d507d
2個のファイルの変更35行の追加11行の削除
+32 -8
ファイルの表示
@@ -11,7 +11,7 @@ import random
import subprocess
from asyncio import Lock
from datetime import date, datetime, time, timedelta
from typing import Any, TypedDict, cast
from typing import Any, Callable, TypedDict, cast
import nicolib
import queries_to_answers as q2a
@@ -292,24 +292,48 @@ async def reconnect_db (
) -> None:
while True:
await asyncio.sleep (600)
run_with_mysql_retry (DB.reconnect, 'mysql')
try:
ensure_mysql_alive ()
except Exception as ex:
if getattr (ex, 'args', [None])[0] in (2006, 2013):
safe_reconnect ()
else:
raise
def ensure_mysql_alive ():
def ensure_mysql_alive (
) -> None:
conn = DB.connection ('mysql').get_connection ()
conn.ping (True)
conn.ping ()
def run_with_mysql_retry (fn, *args, **kwargs):
def safe_reconnect (
) -> None:
try:
DB.reconnect ('mysql')
except Exception as ex:
if getattr (ex, 'args', [None])[0] not in (2006, 2013):
raise
def run_with_mysql_retry (
fn: Callable[..., Any],
*args,
**kwargs,
) -> Any:
last = None
for _ in range (2):
try:
ensure_mysql_alive ()
return fn (*args, **kwargs)
except Exception as ex:
last = ex
if getattr (ex, 'args', [None])[0] in (2006, 2013):
DB.reconnect ('mysql')
ensure_mysql_alive ()
return fn (*args, **kwargs)
safe_reconnect ()
continue
raise
if last:
raise last
def _add_query (
サブモジュール nizika_ai が更新されました: 5dae2ae038...1f75763038