停服维护是运营的例行手术:改配置、修数据、升版本都要一个安静的服务器。维护的体验好坏在细节——公告是否提前、补偿是否到位、开服是否准点,自动化把这三件事的执行从人肉变成流程。
---维护的定时编排:提前公告与自动停服
setontimerex(86, 60)
function Maintain.tick()
local hm = os.date("%H%M")
-- 开服前 24 小时与 1 小时各公告一次
if hm == Maintain.announceAt1 then
sendmsg(nil, 1, "服务器将于明日 02:00-04:00 停服维护,补偿 500 元宝")
elseif hm == Maintain.announceAt2 then
sendmsg(nil, 1, "服务器 1 小时后停服维护,请及时下线")
elseif hm == Maintain.shutdownAt then
Maintain.beginShutdown()
end
end
---停服的收尾:踢线、落盘、关服
function Maintain.beginShutdown()
Ledger.flush()
MailQueue.persist()
Gateway.kickAll("服务器维护中,12:00 见")
os.execute("shutdown_cmd")
end
维护的编排三条时间线:提前 24 小时首次公告(含补偿承诺)、提前 1 小时二次提醒、准点停服。停服的收尾走标准流程:内存缓冲落盘、邮件队列持久化、全服踢线带文明话术——数据的一致性在停服前完成收尾。补偿的 500 元宝不靠人肉发放:开服后的补偿任务按停服时长自动计算,超时的每多 10 分钟追加 100 元宝,补偿的承诺与执行由同一份配置驱动。
---开服前的自检:全绿才放行
function Maintain.preOpen()
local checks = {
{ name = "配置装载", fn = Cfg.loadAll },
{ name = "数据库连通", fn = DB.ping },
{ name = "冒烟用例", fn = Smoke.run },
{ name = "补偿发放", fn = Compensate.send },
}
for _, c in ipairs(checks) do
local ok = c.fn()
if not ok then
Ops.alert("开服自检失败:" .. c.name)
return false
end
end
Gateway.openListen()
sendmsg(nil, 1, "维护完成,服务器已开放!")
return true
end
开服前自检四项全绿才开门:配置装载、数据库连通、冒烟用例、补偿发放——补偿在开门前发到位,玩家进门的第一个邮件就是维护的诚意。自检失败的熔断让坏版本停在门外,开服时间顺延的公告比带病上线体面。维护的窗口避开活动与攻城的日历冲突,维护的排期与运营的活动表同一份日历管理。维护记录的档案:每次的停服时长、变更内容、补偿金额,维护的账本透明可查。
维护窗口的执行偏差统计:公告时刻、停服时刻、开服时刻与计划的偏差,超 15 分钟的偏差复盘;补偿的到账率核验,承诺与实际发放的对账为零差额。
公告曾经发在维护开始后,玩家的第一反应是服务器炸了,公告的前置化成为铁律。补偿曾经按在线名单发放,离线玩家漏领,发放的名单改为全服注册玩家。自检曾经漏了跨服组件,主服开门了跨服还关着,检查项的清单与架构对齐。
维护的固定时段培养玩家习惯:每周四凌晨的例行窗口写进官网。维护的补偿标准公示,时长的换算透明。紧急维护的流程与例行走两条路:紧急的公告随事件发,补偿的标准另计。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
学员常见误区 Lua函数可返回多个值,学员用固定变量数接收时如果变量少于返回值,多余返回值被静默丢弃;如果变量多于返回值,多…
设计初衷 行会建筑的死穴是一次全解锁:会员没有逐步建设的过程感。梯度设计让每栋建筑都有前置条件和资源门槛。 数值模型 建筑分…
设计初衷 婚姻系统的属性加成是社交玩法的经济锚点:加成太弱没人结婚,太强则"为了属性被迫结婚"扭曲了社交本质。婚姻边界的设计…
设计初衷 宝箱类玩法的信任危机都源于同一句话:"概率是不是骗人的。"期望公示把概率从事后争议变成事前契约:奖池概率表全量公示…
设计初衷 流拍物(拍卖未成交的退回物品)堆积在卖家背包里成为死资产:低价值物流拍后无人问津,高价值物流拍后卖家不愿降价重拍。…
业务场景 沙巴克战功榜每周结算,玩家提交战功前不知道"再打多少能进前 10、前 10 的奖励是什么"。名次预览:输入自己的战…