跳到主要内容

重载日志

Monoceros 很强调热重载,所以“这次重载到底成功没有”本身就是一个非常重要的运维问题。

重载分两类

全局重载

/mono reload

适合你改了很多内容,或者不确定问题属于哪个模块时使用。

指定服务重载

/mono reload <service>

适合你明确知道自己改的是哪一块,例如脚本、调度或分发器。

当前重载系统的特点

  • 服务按优先级参与重载
  • 支持按服务 ID 精准重载
  • 文件监听会结合 SHA-256 内容检测处理变更
  • 资源新增、修改、删除都可以被识别

为什么重载日志重要

因为“文件保存了”不等于“框架真的接纳了这次变更”。

重载日志可以帮助你判断:

  • 服务有没有真正进入重载流程
  • 是全部成功,还是部分成功
  • 哪个服务失败了
  • 当前失败是加载失败,还是资源根本没找到

常见命令配合

  • /mono reload
  • /mono reload script
  • /mono reload schedule
  • /mono reload dispatcher
  • /mono debug

什么时候该开调试模式

如果你出现以下情况,就很适合先开 /mono debug

  • 文件改了但没有生效
  • 某个服务反复加载失败
  • 某个资源热重载后被意外卸载
  • 你怀疑文件监听没有工作

最实用的判断标准

对服主来说,最重要的不是“理解底层日志每一行”,而是确认下面三件事:

  1. 目标服务有没有被重载
  2. 目标资源有没有被重新注册
  3. 失败时能不能定位到具体模块

只要这三点能看清,日常热更新基本就够用了。