运维操作

运维操作

M-Doc 提供热重载、优雅关闭和健康检查等运维功能。


热重载

M-Doc 支持通过 SIGHUP 信号重载配置,无需重启服务:

# 发送 SIGHUP 信号
kill -HUP $(pidof mdoc-server)

热重载会重新读取 config.yaml 中的配置,但以下变更需要重启:

  • 数据库连接配置
  • Redis 连接配置
  • 监听地址变更

优雅关闭

M-Doc 支持优雅关闭,确保正在处理的请求完成后再退出:

# 发送 SIGINT 或 SIGTERM
kill -TERM $(pidof mdoc-server)

# 或 Ctrl+C(前台运行时)

优雅关闭流程:

  1. 停止接收新请求
  2. 等待正在处理的请求完成
  3. 关闭数据库连接
  4. 关闭 Redis 连接
  5. 退出进程

健康检查

端点 用途 响应
GET /health/simple 容器探针 最小响应
GET /health 详细状态 系统状态信息

Docker 健康检查配置已内置在 Dockerfile 中:

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
    CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health/simple || exit 1

日志管理

日志配置:

log:
  level: info
  filename: logs/app.log
  max_size: 100      # 单文件最大 MB
  max_age: 30        # 保留天数
  max_backups: 10    # 最大备份数
  compress: true     # 压缩归档

日志系统基于 Zap,支持结构化日志输出。

日志级别

级别 说明
debug 调试信息(开发环境)
info 一般信息(生产环境推荐)
warn 警告信息
error 错误信息

定时任务

M-Doc 内置一个定时任务:

孤立文章清理

  • 执行时间:每天凌晨 2:00
  • 作用:清理不属于任何版本的孤立文章
  • 原因:操作中断可能导致文章未正确关联到版本

该任务自动运行,无需手动配置。