add mqtt and device test
This commit is contained in:
@@ -2,6 +2,7 @@ import asyncio
|
||||
import os
|
||||
from contextlib import asynccontextmanager
|
||||
from fastapi import FastAPI
|
||||
from services import offline_audio_cache
|
||||
from services.device_config import DeviceConfigManager
|
||||
from services.schedule_session_cleanup import background_cleanup_task
|
||||
from services.role_manager import role_manager
|
||||
@@ -14,6 +15,8 @@ from api.assets import configure_static_assets
|
||||
from database.init_db import init_db
|
||||
from database.connection import get_db_manager
|
||||
from services.firmware_scanner import firmware_scanner
|
||||
from handlers.mqtt_handler import TalkingQMQTTService
|
||||
from services.scheduler import TaskScheduler
|
||||
|
||||
device_config_manager = DeviceConfigManager()
|
||||
|
||||
@@ -29,6 +32,28 @@ async def lifespan(app: FastAPI):
|
||||
)
|
||||
init_directories()
|
||||
|
||||
scheduler = TaskScheduler.get_instance()
|
||||
scheduler.start()
|
||||
scheduler.add_interval_task(
|
||||
interval_seconds=settings.talkingq_mqtt_nfc_notice_interval
|
||||
)
|
||||
if settings.talkingq_mqtt_broker:
|
||||
mqtt_config = {
|
||||
"broker": settings.talkingq_mqtt_broker,
|
||||
"port": settings.talkingq_mqtt_port,
|
||||
"username": settings.talkingq_mqtt_username,
|
||||
"password": settings.talkingq_mqtt_password,
|
||||
"device_prefix": settings.talkingq_mqtt_device_prefix,
|
||||
"qos": settings.talkingq_mqtt_qos,
|
||||
"keepalive": settings.talkingq_mqtt_keepalive,
|
||||
"nfc_notice_interval": settings.talkingq_mqtt_nfc_notice_interval,
|
||||
}
|
||||
service = await TalkingQMQTTService.get_instance(mqtt_config)
|
||||
await service.connect()
|
||||
session_logger.system_info("startup", "TalkingQ MQTT 设备命令服务链接已启动")
|
||||
else:
|
||||
session_logger.system_info("startup", "未配置 TalkingQ_MQTT,MQTT 服务链接未启动")
|
||||
exit(1)
|
||||
try:
|
||||
session_logger.system_info("startup", "初始化数据库...")
|
||||
await init_db()
|
||||
@@ -93,6 +118,10 @@ async def lifespan(app: FastAPI):
|
||||
if is_main_process:
|
||||
session_logger.system_info("shutdown", f"关闭数据库连接时出错: {str(e)}")
|
||||
|
||||
TaskScheduler.reset_instance()
|
||||
await TalkingQMQTTService.reset_instance()
|
||||
session_logger.system_info("shutdown", "TalkingQ MQTT 服务链接已关闭")
|
||||
|
||||
if is_main_process:
|
||||
session_logger.system_info("shutdown", "应用关闭")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user