御坂数据库 MisakaDB
主页
文档
分类
模块
主页
文档
分类
模块
Coin 插件

Date: 2026/8/27Category: coin 内置插件Tag: 内置插件开发

coin 插件

看看这颗带着电磁炮的硬币(coin)能给misaka带来如何的提升吧!

tasktype

提供了删除文件的一整套流程:

  • 标记文件为删除MisakaRemove.ready 将MisakaRemove.ready的文件确认删除,标记为(MisakaRemove.finsh)的文件,并交给judgment的清道夫处理。
Miql的数据库操作

Date: 2026/8/9Category: miqlTag: miql

MIQL

miql是什么

MIQL是用于增删改查数据库的语法,由mq.开头。mq 必须登录用户执行。

创建数据库

mq.createDB(<name>[, engine])
更新日志

Date: 2026/8/9Category: 其他Tag: 更新

V0.1.8

常规更新

fixed

  • 修复Windows环境中,强制落盘目录导致无权限的Bug;
  • 修复Windows环境中,部分场景下,删除数据库提醒无权限的问题;
  • 修复Windows环境中,内置coin插件OnRemoveFolder删除已被打开的目录导致出现的问题;

feature

  • 实现 TaskCombo、AddTaskCombo 等业务函数;
  • 实现删除数据库逻辑, 并挂载给 TinyDB 引擎;
  • 修改内置库 atoimc 库名称为 atomicX;
  • engine.NewTinyEngine

chore

  • 加入更新日志

refactor

  • 修改获取PluginX单例的函数名: GetPluginBus -> GetPluginX;
  • 修改 PluginBus 名称为 PluginsX;
  • 修改 内置插件 base_unloader 插件名称为 coin;
  • 将 AtomicDropDB 的逻辑转交给 内置插件 coin 执行;
原子任务中心

Date: 2026/7/2Category: 内部实现Tag: 原子任务

TaskType对应一个TaskBooks,多个TaskBooks组合成一个Task。不同的Task存在在原子任务中心的TaskMap中以TaskID作为键来进行存储,TaskID的获取方式是通过函数AddTask的返回值获取的。

原子任务中心的作用

当客户端发来miql之后,misakadb要统一进行解析,为了保持miql的任务的原子性、一致性、隔离性、持久性这四个属性,misakaDB需要一个原子任务中心来管理所有的任务。

插件开发

Date: 2026/7/2Category: 插件Tag: 插件开发

Tips

misaka支持天然插件加载和开发,用户可以在 misaka 开发自己的插件,官方默认加载了一个misaka basic mode的插件供以参考,请勿删除misaka basic mode插件,这会导致misaka不可用。

插件开发

Misaka支持插件的开发和使用。

模组原理:开发者创建函数,然后按照指定的type约束传入注册机,如:func ([]tasktype.TaskType) []tasktype.TaskType, 注册机会根据类型在程序启动之后,在相应的地方调用函数。

全局锁池

Date: 2026/6/22Category: 内部实现Tag: 全局锁池

什么是全局锁池

全局锁池可以帮助我们快速的在项目中对某个资源、操作句柄进行上锁。

全局锁池的实现

全局锁池内部被划分为两个子池:

  • YoungPool:存储当前高频访问、命中率较高的热点锁
  • OldPool:存储暂时降级的锁,用于后续淘汰和回收判断

业务线程在获取锁时,会优先查询 YoungPool。如果未命中,再继续查询 OldPool。一旦在 OldPool 中找到目标锁,就会将该锁重新提升到 YoungPool,从而让热点锁始终尽量停留在更快命中的路径上。