🐛 fix(command): 回调超时从 10s 改为可配置,默认 180s

- 新增 COMMAND_CALLBACK_TIMEOUT 配置项,默认 180 秒
- 生图等耗时命令不再因超时中断
This commit is contained in:
2026-05-03 00:37:16 +08:00
parent fa5d61dbfa
commit a7f52e33fb
2 changed files with 3 additions and 2 deletions

View File

@@ -37,3 +37,4 @@ COMMAND_PREFIX: str = os.environ.get("COMMAND_PREFIX", "#")
COMMAND_LENGTH_MIN: int = int(os.environ.get("COMMAND_LENGTH_MIN", "2"))
COMMAND_LENGTH_MAX: int = int(os.environ.get("COMMAND_LENGTH_MAX", "4"))
COMMAND_CALLBACK_URL: str = os.environ.get("COMMAND_CALLBACK_URL", "")
COMMAND_CALLBACK_TIMEOUT: int = int(os.environ.get("COMMAND_CALLBACK_TIMEOUT", "180"))

View File

@@ -4,7 +4,7 @@ import re
import aiohttp
from ..config import COMMAND_CALLBACK_URL, COMMAND_LENGTH_MAX, COMMAND_LENGTH_MIN, COMMAND_PREFIX
from ..config import COMMAND_CALLBACK_TIMEOUT, COMMAND_CALLBACK_URL, COMMAND_LENGTH_MAX, COMMAND_LENGTH_MIN, COMMAND_PREFIX
def build_command_pattern() -> re.Pattern:
@@ -64,7 +64,7 @@ async def send_command_callback(data: dict, event, api, logger) -> None:
async with session.post(
COMMAND_CALLBACK_URL,
json=data,
timeout=aiohttp.ClientTimeout(total=10),
timeout=aiohttp.ClientTimeout(total=COMMAND_CALLBACK_TIMEOUT),
) as resp:
if resp.status >= 400:
body = await resp.text()