feat(plugin-schedule): add DB-driven plugin scheduler and xiuren scheduled push

This commit is contained in:
liuwei
2026-04-16 15:24:23 +08:00
parent 9d6609990b
commit 014985ac4a
9 changed files with 854 additions and 0 deletions

View File

@@ -21,11 +21,13 @@ from base.plugin_common.plugin_registry import PluginRegistry
from configuration import Config
from db.connection import DBConnectionManager
from db.contacts_db import ContactsDBOperator
from db.plugin_schedule_db import PluginScheduleDBOperator
from db.system_job_db import SystemJobDBOperator
from plugins.xiuren_image.meitu_dl import meitu_dowload_pub_pic
from plugins.xiuren_image.shenshi_r15 import run_daily_job
from utils.system_jobs import SystemJobLoader
from utils.email_util import EmailSender
from utils.plugin_schedule_manager import PluginScheduleManager
from utils.revoke.message_auto_revoke import MessageAutoRevoke
from utils.robot_cmd.robot_command import GroupBotManager, Feature, PermissionStatus
from utils.sehuatang.shehuatang import pdf_file_path
@@ -75,6 +77,7 @@ class Robot:
self.redis_pool = self.db_manager.redis_pool
self.contacts_db = ContactsDBOperator(self.db_manager)
self.plugin_schedule_db = PluginScheduleDBOperator(self.db_manager)
self.system_job_db = SystemJobDBOperator(self.db_manager)
# 初始化联系人管理器
self.contact_manager = ContactManager.get_instance()
@@ -103,6 +106,8 @@ class Robot:
self.plugins = self.plugin_manager.load_all_plugins()
# 热加载改为低频扫描:每 60 秒检查一次插件文件变动
self.plugin_manager.start_hot_reload_watcher(interval_seconds=60.0)
self.plugin_schedule_manager = PluginScheduleManager(self.plugin_manager, self.plugin_schedule_db)
self.plugin_schedule_manager.init_and_load()
self.system_job_loader = SystemJobLoader(self, self.system_job_db)
self.system_job_loader.init_and_load()