计划任务
面向有计划任务配置、命令执行和历史读取权限的管理员。需要后端计划任务模块已启用并能访问游戏进程;每条任务由后端按自己的 Cron 注册。
目的
用可审计的 Cron 任务顺序执行控制台命令,区分只读检查和改变状态的操作,并在失败时从运行历史定位原因。
开始前
- 确认账号可以创建、修改、手动执行和删除任务,并能读取运行历史。
- 先确定每条任务的命令边界、游戏启动依赖、执行线程和并发策略。计划任务会按保存的字符串原样发送命令,不是脚本沙箱。
- 为每条任务填写明确的时区;如果使用全局默认时区,也要记录该默认值和服务器本地时区的回退规则。
text
Read-only: help
Mutating: saveworld操作步骤
任务
- 打开任务列表,先确认模块启用状态、任务的
Enabled、Cron 表达式、TimeZoneId、上次状态和下一次运行时间。下一次时间是提示,不替代保存的 Cron 和时区。 - 新建或编辑
Console Commands任务,填写唯一名称、描述、启用状态、Cron 和时区,并按顺序添加命令。一个任务中的命令共享执行选项并逐条执行。 - 把查询类命令(例如
help)与改变世界/玩家/配置的命令分开管理。只把账号和后端策略的 allow-list(允许列表)中的命令放入任务;saveworld、踢出玩家或设置命令等改变状态的操作必须先有维护窗口、备份和回滚方案。 - 按需要设置
ExecuteOnMainThread、RequireGameStartDone、CaptureOutput和AllowConcurrentExecution。游戏未完成启动时,启用RequireGameStartDone的任务会持久化一条Skipped运行记录;关闭并发时,前一次仍在执行会让新的 Cron 重叠触发在执行前被抑制,可能不写入历史记录。 - 保存后用播放按钮手动执行一次。确认对话框中的任务名称和命令目标无误;删除任务前先查看历史并确认不再需要其审计记录。

该图展示任务列表布局和创建入口;没有可安全展示的任务或下一次运行记录。
历史
- 按任务类型
ConsoleCommands、触发方式Cron/Manual、成功状态和时间范围筛选,找到已写入历史的运行。关闭并发时,前一次运行仍在执行可能静默抑制新的 Cron 重叠触发,因此可能没有历史记录;此时确认任务仍启用且 Cron/时区配置正确,等待下一次符合条件的运行;回调被接纳后,再用可用的LastRun或历史记录核对结果。 - 打开详情,检查
Status、Summary、ErrorMessage、捕获的输出、开始/结束时间、耗时、操作者和来源 IP。失败时逐条对应详情中的命令,不要只看任务列表的上次状态。 - 按以下顺序排查失败:任务和模块是否启用、Cron 是否有效、任务时区是否正确、游戏是否已启动、命令是否在允许边界内、是否被并发重叠抑制或启动门槛跳过、目标模块是否返回错误。
- 对改变状态的任务,再对照审计日志和游戏日志确认实际效果;
Success只证明任务执行链没有捕获错误,不代表业务结果一定符合预期。
设置
- 在设置中启用或停用整个计划任务模块。停用后不会注册任何任务。
- 设置
DefaultTimeZoneId和DefaultAllowConcurrentExecution。任务显式填写的时区优先;默认并发值只用于新建任务,不会覆盖已有任务。 - 设置
HistoryRetentionDays,并按需启用失败广播。失败消息可使用{taskName}和{error};不要把玩家隐私、令牌或内部路径放入广播模板。 - 保存后重新加载设置,并用一条只读任务验证默认时区、历史记录和失败通知配置。
验证结果
- 任务列表显示启用状态、Cron、时区、上次状态和下一次运行时间;显式任务时区与设置页的默认时区区别清楚。
- 一条只读任务产生
Success历史记录并捕获预期输出;一条受控的改变状态任务产生对应审计记录并在维护窗口内完成。 - 故意使用受控的无效命令后,历史出现
Failed,ErrorMessage或详情能定位到具体命令;启用RequireGameStartDone且启动未完成时会持久化Skipped原因,并发冲突可能在执行前被静默抑制且不写入历史;确认任务仍启用、Cron 和时区配置正确,等待下一次符合条件的运行;回调被接纳后,用可用的LastRun或历史记录核对结果。
限制与安全说明
WARNING
计划任务会在后端进程中按顺序直接调用游戏控制台。全局 Permission/控制台策略和 allow-list(允许列表)是命令边界;任务列表本身不会把任意命令变成安全命令。ExecuteOnMainThread 可能占用游戏主线程,CaptureOutput 可能把命令输出写入历史。
DANGER
保存、踢出、封禁、发放物品、传送和配置修改等命令会改变线上状态。先用只读命令验证目标,再在维护窗口执行;命令参数中的玩家 ID、路径和凭据不得写入公开文档或广播。
- 历史保留天数会自动清理旧记录。需要长期审计时导出记录,并在删除任务或备份前保留证据。