diff --git a/talkingq-url/services/scheduler.py b/talkingq-url/services/scheduler.py index 717a861..a618a65 100644 --- a/talkingq-url/services/scheduler.py +++ b/talkingq-url/services/scheduler.py @@ -1,7 +1,6 @@ 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.offline_audio_cache import offline_audio_cache from utils.logger import session_logger as logger class TaskScheduler: @@ -35,11 +34,9 @@ class TaskScheduler: async def _execute_task(self): try: 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 [] - device_ids = list(dict.fromkeys([*pending_devices, *fallback_devices])) + device_ids = list(dict.fromkeys(pending_devices)) if not device_ids: - logger.warning("", "", "无离线音频缓存,跳过本次执行") + logger.warning("", "", "无待收听留言,跳过本次执行") return for device_id in device_ids: sent = await pending_voice_message_service.notify_device_pending_message( diff --git a/talkingq-url/tests/test_pending_voice_notice.py b/talkingq-url/tests/test_pending_voice_notice.py index fb71c03..57b08fa 100644 --- a/talkingq-url/tests/test_pending_voice_notice.py +++ b/talkingq-url/tests/test_pending_voice_notice.py @@ -87,13 +87,28 @@ async def test_scheduler_sends_pending_notice_without_websocket_check(monkeypatc calls.append(target_device_id) return True - class FakeOfflineAudioCache: - async def get_all_audio_cache(self): - return {} - monkeypatch.setattr("services.scheduler.pending_voice_message_service", FakePendingVoiceService()) - monkeypatch.setattr("services.scheduler.offline_audio_cache", FakeOfflineAudioCache()) await scheduler._execute_task() assert calls == ["TalkingQ_device001"] + + +@pytest.mark.asyncio +async def test_scheduler_skips_notice_when_no_pending_messages(monkeypatch): + scheduler = TaskScheduler() + calls = [] + + class FakePendingVoiceService: + async def list_devices_with_pending(self): + return [] + + async def notify_device_pending_message(self, *, target_device_id): + calls.append(target_device_id) + return True + + monkeypatch.setattr("services.scheduler.pending_voice_message_service", FakePendingVoiceService()) + + await scheduler._execute_task() + + assert calls == []