mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-07 12:50:03 +08:00
✨feat(core): 优化数据库调用表现 (#2089)
This commit is contained in:
@@ -4,6 +4,7 @@ from zhenxun.models.group_console import GroupConsole
|
||||
from zhenxun.models.plugin_info import PluginInfo
|
||||
from zhenxun.models.task_info import TaskInfo
|
||||
from zhenxun.services.cache import CacheRoot
|
||||
from zhenxun.services.cache.runtime_cache import TaskInfoMemoryCache
|
||||
from zhenxun.utils.common_utils import CommonUtils
|
||||
from zhenxun.utils.enum import BlockType, CacheType, PluginType
|
||||
from zhenxun.utils.exception import GroupInfoNotFound
|
||||
@@ -338,9 +339,11 @@ class PluginManager:
|
||||
"""
|
||||
if is_default:
|
||||
await TaskInfo.all().update(default_status=False)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return "已禁用所有被动进群默认状态"
|
||||
else:
|
||||
await TaskInfo.all().update(status=False)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return "已全局禁用所有被动状态"
|
||||
|
||||
@classmethod
|
||||
@@ -355,9 +358,11 @@ class PluginManager:
|
||||
"""
|
||||
if is_default:
|
||||
await TaskInfo.filter(name=name).update(default_status=False)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return f"已禁用被动进群默认状态 {name}"
|
||||
else:
|
||||
await TaskInfo.filter(name=name).update(status=False)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return f"已全局禁用被动状态 {name}"
|
||||
|
||||
@classmethod
|
||||
@@ -372,9 +377,11 @@ class PluginManager:
|
||||
"""
|
||||
if is_default:
|
||||
await TaskInfo.all().update(default_status=True)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return "已开启所有被动进群默认状态"
|
||||
else:
|
||||
await TaskInfo.all().update(status=True)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return "已全局开启所有被动状态"
|
||||
|
||||
@classmethod
|
||||
@@ -390,9 +397,11 @@ class PluginManager:
|
||||
"""
|
||||
if is_default:
|
||||
await TaskInfo.filter(name=name).update(default_status=True)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return f"已开启被动进群默认状态 {name}"
|
||||
else:
|
||||
await TaskInfo.filter(name=name).update(status=True)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return f"已全局开启被动状态 {name}"
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -14,6 +14,7 @@ from zhenxun.models.group_console import GroupConsole
|
||||
from zhenxun.models.plugin_info import PluginInfo
|
||||
from zhenxun.models.plugin_limit import PluginLimit
|
||||
from zhenxun.models.task_info import TaskInfo
|
||||
from zhenxun.services.cache.runtime_cache import TaskInfoMemoryCache
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.enum import (
|
||||
BlockType,
|
||||
@@ -379,6 +380,7 @@ async def group_migration():
|
||||
if close_task := data["close_task"]:
|
||||
"""全局被动关闭"""
|
||||
await TaskInfo.filter(module__in=close_task).update(status=False)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
group_list = await GroupConsole.filter(
|
||||
group_id__in=old_group_list.keys()
|
||||
)
|
||||
|
||||
@@ -8,6 +8,7 @@ from nonebot_plugin_apscheduler import scheduler
|
||||
from zhenxun.configs.utils import PluginExtraData, Task
|
||||
from zhenxun.models.group_console import GroupConsole
|
||||
from zhenxun.models.task_info import TaskInfo
|
||||
from zhenxun.services.cache.runtime_cache import TaskInfoMemoryCache
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.common_utils import CommonUtils
|
||||
from zhenxun.utils.manager.priority_manager import PriorityLifecycle
|
||||
@@ -89,6 +90,8 @@ async def to_db(
|
||||
if load_task:
|
||||
await TaskInfo.filter(module__in=load_task).update(load_status=True)
|
||||
await TaskInfo.filter(module__not_in=load_task).update(load_status=False)
|
||||
if create_list or update_list or load_task:
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
|
||||
|
||||
async def get_run_task(task: Task, *args, **kwargs):
|
||||
@@ -144,6 +147,7 @@ async def _():
|
||||
await _handle_setting(plugin, task_info_list, task_list)
|
||||
if not task_info_list:
|
||||
await TaskInfo.all().update(load_status=False)
|
||||
await TaskInfoMemoryCache.refresh()
|
||||
return
|
||||
module_dict = {t[1]: t[0] for t in await TaskInfo.all().values_list("id", "module")}
|
||||
load_task = []
|
||||
|
||||
@@ -11,6 +11,7 @@ from nonebot_plugin_session import EventSession
|
||||
from zhenxun.configs.utils import PluginExtraData
|
||||
from zhenxun.models.plugin_info import PluginInfo
|
||||
from zhenxun.models.statistics import Statistics
|
||||
from zhenxun.services.cache.runtime_cache import PluginInfoMemoryCache
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.services.message_load import should_pause_tasks
|
||||
from zhenxun.utils.enum import PluginType
|
||||
@@ -39,7 +40,11 @@ async def _(
|
||||
"""过滤除poke外的notice"""
|
||||
return
|
||||
if session.id1 and matcher.plugin:
|
||||
plugin = await PluginInfo.get_plugin(module_path=matcher.plugin.module_name)
|
||||
plugin = PluginInfoMemoryCache.get_by_module_path(matcher.plugin.module_name)
|
||||
if not plugin:
|
||||
plugin = await PluginInfo.get_plugin(module_path=matcher.plugin.module_name)
|
||||
if plugin:
|
||||
PluginInfoMemoryCache.set_plugin(plugin)
|
||||
plugin_type = plugin.plugin_type if plugin else None
|
||||
if plugin_type == PluginType.NORMAL:
|
||||
logger.debug(f"提交调用记录: {matcher.plugin_name}...", session=session)
|
||||
|
||||
Reference in New Issue
Block a user