待收听留言入库后即时推送提醒
This commit is contained in:
@@ -1,13 +1,7 @@
|
||||
import logging
|
||||
from typing import Optional, Dict
|
||||
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.triggers.interval import IntervalTrigger
|
||||
from banban.service.pending_voice_message import pending_voice_message_service
|
||||
from services.connection_manager import connection_manager
|
||||
from handlers.mqtt_handler import TalkingQMQTTService
|
||||
from services.offline_audio_cache import offline_audio_cache
|
||||
from config import settings
|
||||
from utils.logger import session_logger as logger
|
||||
|
||||
class TaskScheduler:
|
||||
@@ -40,7 +34,6 @@ class TaskScheduler:
|
||||
|
||||
async def _execute_task(self):
|
||||
try:
|
||||
service = await TalkingQMQTTService.get_instance()
|
||||
pending_devices = await pending_voice_message_service.list_devices_with_pending()
|
||||
audio_cache = await offline_audio_cache.get_all_audio_cache()
|
||||
fallback_devices = list(audio_cache.keys()) if audio_cache else []
|
||||
@@ -49,13 +42,13 @@ class TaskScheduler:
|
||||
logger.warning("", "", "无离线音频缓存,跳过本次执行")
|
||||
return
|
||||
for device_id in device_ids:
|
||||
websocket = await connection_manager.get_connection(device_id)
|
||||
if websocket is not None:
|
||||
audio_url = f"http://{settings.server_host}:{settings.server_port}/assets/audio/new_message.mp3"
|
||||
await service.send_nfc_notice(device_id, audio_url)
|
||||
logger.info(device_id, "", f"[定时任务] 发送音频成功: device={device_id}, audio_url={audio_url}")
|
||||
sent = await pending_voice_message_service.notify_device_pending_message(
|
||||
target_device_id=device_id,
|
||||
)
|
||||
if sent:
|
||||
logger.info(device_id, "", f"[定时任务] 发送待收听留言提醒成功: device={device_id}")
|
||||
else:
|
||||
logger.info(device_id, "", f"[定时任务] 跳过音频发送: 设备 {device_id} 离线")
|
||||
logger.info(device_id, "", f"[定时任务] 待收听留言提醒未发送: device={device_id}")
|
||||
except Exception as e:
|
||||
logger.error("", "", f"[定时任务] 执行失败: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user