跳到主要内容
版本:4.x

任务计划

介绍

方便的维护一些周期性的任务,例如:在一个下单交易的应用里,超时未支付的订单需要被关闭掉,就可以通过任务计划模块添加一个任务来每隔 1 分钟调用一次应用的某接口来让应用检查那些超期未支付的订单。任务可以在多台主机或 Spug 本机上执行,支持 Shell 与 Python 脚本。

任务计划

新建任务

新建任务分三步:创建任务 → 设置触发器 → 选择执行对象

1. 创建任务

创建任务

  • 任务类型:任务的分类,可在下拉框中直接输入新的类型。
  • 任务名称:任务名称。
  • 任务内容:要执行的脚本,支持 ShellPython,可以点击 从模板添加 复用批量执行的命令模板。
  • 失败通知:任务执行失败时发送通知,支持 钉钉飞书企业微信 群机器人以及自定义 Webhook
  • 备注信息:可选。

2. 设置触发器

设置触发器

触发器说明
普通间隔每隔指定的 N 秒执行一次
一次性仅在指定时间运行一次
UNIX cron兼容 crontab 风格的执行规则,例如 0 1 * * * 表示每天凌晨 1 点,支持 1-52-5/21,3,5 等写法,页面会实时显示接下来的预估执行时间;可以设置生效时间与结束时间
监控告警当选择的监控项触发告警时执行,用于故障自愈,例如进程检测异常时自动重启服务

3. 选择执行对象

选择执行对象

  • 执行对象:可以选择一台或多台主机,也可以选择 本机(即 Spug 服务运行所在的容器或主机)。
  • 触发器为 监控告警 时还可以选择 告警关联主机,即触发告警的那台主机(仅进程检测与自定义脚本类型的监控项有关联主机)。

任务管理

  • 新建的任务默认为 未激活 状态,在列表的 更多 菜单中 激活任务 后才会按触发器调度,也可以随时 禁用任务;该菜单还提供 执行测试历史记录删除
  • 更多 / 执行测试:立即在执行对象上执行一次任务,便于调试脚本。
  • 详情:查看任务的执行记录,包含每次执行的状态、耗时、输出,以及成功 / 失败次数与平均耗时统计。

执行记录

执行历史仅保留每个任务最近 50 条记录,多余的记录将会被自动删除。

小提示

  • 任务计划依赖 runschedulerrunworker 两个后台服务,Docker 安装已内置,手动部署请参考 二开相关问题
  • 任务计划的脚本中不会注入批量执行的 SPUG_* 主机变量,如需主机信息请在脚本中自行获取(例如 hostname -I)。
  • 任务在主机上以非交互 Shell 执行,如遇 command not found 请参考 实践指南