Appearance
定时任务
定时任务功能支持通过 Cron 表达式定时执行脚本,适用于数据同步、报表生成、消息推送等场景。
创建任务
- 在左侧导航栏选择「任务」分类
- 点击「+」按钮创建新任务
- 配置 Cron 表达式
- 编写任务脚本
- 启用任务
Cron 表达式
SSS-RUN使用秒级 Cron 表达式,共 6 个字段:
秒 分 时 日 月 周| 字段 | 允许值 | 允许特殊字符 |
|---|---|---|
| 秒 | 0-59 | , - * / |
| 分 | 0-59 | , - * / |
| 时 | 0-23 | , - * / |
| 日 | 1-31 | , - * ? / |
| 月 | 1-12 | , - * / |
| 周 | 0-6(0=周日) | , - * ? / |
常用表达式
| 表达式 | 说明 |
|---|---|
*/5 * * * * * | 每 5 秒执行 |
0 */1 * * * * | 每 1 分钟执行 |
0 0 */1 * * * | 每 1 小时执行 |
0 0 8 * * * | 每天早上 8 点执行 |
0 0 8 * * 1 | 每周一早上 8 点执行 |
0 0 0 1 * * | 每月 1 日零点执行 |
可视化编辑器
任务创建界面提供可视化 Cron 编辑器,无需手动输入表达式,通过选择即可生成。
任务脚本
任务脚本与接口脚本语法相同,支持所有内置模块:
javascript
// 定时同步数据示例
var db = require("db")
var http = require("http")
var log = require("log")
var data = http.Get("https://api.example.com/sync")
if (data) {
db.Exec("DELETE FROM sync_cache")
db.Exec("INSERT INTO sync_cache (data) VALUES (?)", JSON.stringify(data))
log.Info("数据同步完成")
} else {
log.Error("数据同步失败")
}任务管理
| 操作 | 说明 |
|---|---|
| 启用 | 开始按 Cron 表达式执行 |
| 停用 | 暂停执行 |
| 手动执行 | 立即执行一次 |
| 查看日志 | 查看执行记录和输出 |
超时控制
任务支持配置超时时间,超时后自动终止执行,避免长时间运行的任务占用资源。
task 模块 API
在脚本中可通过 task 模块动态管理定时任务:
Subscribe — 订阅定时任务
javascript
var task = require("task")
task.Subscribe("任务名称", "*/10 * * * * *", function() {
log.Info("任务执行")
})参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| name | string | 任务名称 |
| cron | string | Cron 表达式 |
| callback | function | 回调函数 |
Unsubscribe — 取消定时任务
javascript
var task = require("task")
task.Unsubscribe("任务名称")注意事项
- 任务脚本执行超时后会被强制终止
- 任务执行失败不会自动重试,需在脚本中自行处理
- 同一任务同一时刻只会执行一次,不会并发
- 建议在任务脚本中添加日志记录,便于排查问题