.task 文件 Schema¶
位置:
/{软件名}.application/task/{任务名}.task(单文件) | XML 根:task| 与技能对齐:generate-task-file机制背景见 [[design/table-schema/overview]]。
1. 用途与落盘¶
定时任务 = 软件级 iScript 定时调度(Quartz,IscriptTaskJob)。**不是**流程待办(TaskInfo)、不是流程节点定时审批 Job。软件须 activated=true 且域已绑定,Job 才真正执行。
id 同时作为 Quartz jobName/triggerName。脚本环境**无 Document / 无 WebUser 业务会话**(空 Document + params)。
2. 属性表¶
| 属性 | XML 形态 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
id |
根属性 | string | 须生成 | __ + 短 UUID;= Quartz jobName |
name |
子元素 | string | — | 必填;文件名;应用内唯一 |
parentId |
子元素 | string | — | = 软件 id |
type |
子元素 | int | 1 | 仅脚本:TASK_TYPE_SCRIPT=1 |
startupType |
子元素 | int | 0 手动(按 cron 挂,不立即)/ 1 自动(startNow)/ 2 禁止(deleteJob) | |
period |
子元素 | int | — | 重复类型(§3) |
runningTime |
子元素 | dateTime | 调度锚点;由 rDate+rTime 或当前时刻合成 | |
rTime |
子元素 | string | HH:mm:ss;日/周/月/不重复必填 |
|
rDate |
子元素 | string | yyyy-MM-dd;仅不重复(period=0)用 |
|
interval |
子元素 | int | 1 | period=34 每分/546 每时的间隔数 |
daysOfWeek |
重复元素 | int | period=32 每周;Calendar 序:1=周日…7=周六;可多个 | |
dayOfMonth |
子元素 | int | 1 | period=512 每月第几天(1–31) |
taskScript |
CDATA | string | — | 任务正文 iScript |
terminateScript |
CDATA | string | 可空 | 每次触发前跑;返回 Boolean true → 删 Job 并跳过 |
state |
子元素 | int | 0 | 运行态标记(start API→1);主开关是 startupType |
runtimes/totalRuntimes/executedCount/repeatTimes/frequency |
子元素 | int | 0 | 历史计数;现行 Job 不回写 |
creator/creatorid/modifyTime |
子元素 | 元信息 |
3. period(十六进制常量,十进制写入 XML)¶
| 十进制 | 常量 | UI 文案 | 必填时间字段 |
|---|---|---|---|
| 0 | NOTREAPET | 不重复(一次性) | rDate + rTime |
| 8192 | IMMEDIATE | 立刻(无 cron,触发后删) | runningTime≈now |
| 34 | DAILY_MINUTES | 每分 | interval(分钟) |
| 546 | DAILY_HOURS | 每时 | interval(小时) |
| 2 | DAILY | 每日 | rTime |
| 32 | WEEKLY | 每周 | rTime + daysOfWeek |
| 512 | MONTHLY | 每月 | rTime + dayOfMonth |
runningTime 合成:period 2/32/512 → rTime 套今天;period 0 → rDate+rTime;34/546/8192 → 当前时刻。
4. XML 骨架(每周一 09:00)¶
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<task id="__taskWeekly00000001">
<name>周报提醒</name>
<parentId>软件id</parentId>
<type>1</type>
<startupType>1</startupType>
<period>32</period>
<runningTime>2026-08-15T09:00:00.000+08:00</runningTime>
<rTime>09:00:00</rTime>
<rDate></rDate>
<dayOfMonth>1</dayOfMonth>
<interval>1</interval>
<state>0</state>
<runtimes>0</runtimes>
<daysOfWeek>2</daysOfWeek>
<taskScript><![CDATA[(function(){
// 定时逻辑(无 doc/user 上下文;可用 getApplication()、queryByDSName 等)
})()]]></taskScript>
<terminateScript><![CDATA[(function(){ return false; })()]]></terminateScript>
</task>
5. 相关¶
| 资源 | 文档 |
|---|---|
| 所属软件 | [[application-file]] |
| 脚本环境与写法 | agent-skills-usage/skills/iscript-usage/task.md |
| 生成操作指南 | agent-skills-usage/skills/generate-task-file/SKILL.md(含全 period cron 表、触发链) |