diff --git a/src/plugins/built_in/maizone_refactored/plugin.py b/src/plugins/built_in/maizone_refactored/plugin.py index ccf8874e1..17fb6678b 100644 --- a/src/plugins/built_in/maizone_refactored/plugin.py +++ b/src/plugins/built_in/maizone_refactored/plugin.py @@ -68,6 +68,8 @@ class MaiZoneRefactoredPlugin(BasePlugin): }, "schedule": { "enable_schedule": ConfigField(type=bool, default=False, description="是否启用定时发送"), + "random_interval_min_minutes": ConfigField(type=int, default=5, description="随机间隔分钟数下限"), + "random_interval_max_minutes": ConfigField(type=int, default=15, description="随机间隔分钟数上限"), }, "cookie": { "http_fallback_host": ConfigField(type=str, default="127.0.0.1", description="备用Cookie获取服务的主机地址"), diff --git a/src/plugins/built_in/maizone_refactored/services/scheduler_service.py b/src/plugins/built_in/maizone_refactored/services/scheduler_service.py index 6047f43c5..501f9958c 100644 --- a/src/plugins/built_in/maizone_refactored/services/scheduler_service.py +++ b/src/plugins/built_in/maizone_refactored/services/scheduler_service.py @@ -5,6 +5,7 @@ """ import asyncio import datetime +import random import traceback from typing import Callable @@ -91,8 +92,12 @@ class SchedulerService: result.get("message", "") ) - # 6. 等待5分钟后进行下一次检查 - await asyncio.sleep(300) + # 6. 计算并等待一个随机的时间间隔 + min_minutes = self.get_config("schedule.random_interval_min_minutes", 5) + max_minutes = self.get_config("schedule.random_interval_max_minutes", 15) + wait_seconds = random.randint(min_minutes * 60, max_minutes * 60) + logger.info(f"下一次检查将在 {wait_seconds / 60:.2f} 分钟后进行。") + await asyncio.sleep(wait_seconds) except asyncio.CancelledError: logger.info("定时任务循环被取消。")