超时与提醒
超时与提醒
超时配置用于给审批任务或办理任务设置一个截止时间。当任务到达当前节点后,系统会根据这里配置的超时时长计算出任务的截止时间;后面的提醒规则、重复提醒、超时处理,都是围绕这个截止时间运行的。
简单来说:
先有超时时间,才有截止时间;提醒规则是基于截止时间计算的。
如果节点没有启用超时处理,或者没有配置超时时长,那么任务通常不会生成截止时间,提醒规则也就没有可靠的触发基准。
超时处理
启用超时处理
开启「启用超时处理」后,系统会在任务创建时计算截止时间,并把这个截止时间记录到对应的审批任务或办理任务上。
例如:
-
审批任务到达节点时间:
2026-05-11 10:00 -
超时时长:
24 小时 -
截止时间:
2026-05-12 10:00
后续系统会通过定时任务检查这个任务是否已经超过截止时间。
超时时长
超时时长由两个部分组成:
-
数字;
-
时间单位。
常见单位包括分钟、小时、自然日、工作日。
分钟
按实际分钟计算。
例如任务在 10:00 到达,超时时长为 30 分钟,则截止时间是 10:30。
小时
按实际小时计算。
例如任务在 10:00 到达,超时时长为 2 小时,则截止时间是 12:00。
自然日
自然日就是日历天,包含周六、周日。
例如任务在周五 15:00 到达,超时时长为 1 自然日,则截止时间是周六 15:00。
自然日不会跳过周末,也不会判断节假日。
工作日
工作日按当前代码逻辑,是指周一到周五。
它会跳过周六和周日,但目前不读取 Odoo 工作日历,也不识别国家法定节假日。
例如任务在周五 15:00 到达:
-
超时时长为
1 工作日,截止时间是下周一15:00; -
超时时长为
2 工作日,截止时间是下周二15:00。
这里要特别注意,工作日只是跳过周末,并不是完整的企业考勤日历。
超时后动作
超时后动作决定任务超过截止时间后,系统要怎么处理。
常见动作包括:
-
不执行动作,只记录日志;
-
自动同意;
-
自动拒绝;
-
转交给其他处理人。
如果选择「不执行动作,只记录日志」,任务超时后系统不会自动完成审批或办理,只会写入流程日志,表示该任务已经超时但没有配置自动处理动作。
如果选择自动同意,审批任务超时后会自动按同意处理。
如果选择自动拒绝,审批任务超时后会自动按拒绝处理。
如果选择转交,任务超时后会转交给配置的目标用户、岗位、用户组或汇报线人员。
需要注意的是,审批任务和办理任务支持的超时动作可能不同。当前逻辑中,审批任务可以处理自动同意、自动拒绝和转交;办理任务更偏向于超时转交或记录日志。
默认定时任务
超时和提醒不是用户打开页面时实时触发,而是由 Odoo 的定时任务自动检查。
当前默认定时任务主要有三类。
审批超时检查
定时任务名称:
Workflow: Process Timed-out Approval Tasks
默认执行频率:
每 10 分钟执行一次
它会查找已经超过截止时间、并且仍然处于 pending 状态的审批任务,然后根据节点配置执行自动同意、自动拒绝、转交或记录日志。
办理超时检查
定时任务名称:
Workflow: Process Timed-out Handling Tasks
默认执行频率:
每 10 分钟执行一次
它会查找已经超过截止时间、并且仍然处于 pending 状态的办理任务,然后根据节点配置执行对应超时处理。
提醒发送检查
定时任务名称:
Workflow: Send Pending Task Reminders
默认执行频率:
每 5 分钟执行一次
它会查找已经到达发送时间、并且仍然处于 pending 状态的提醒记录,然后发送 Odoo 通知、邮件或 Chatter 消息。
因此,超时和提醒都不是毫秒级实时触发。
例如提醒应该在 10:00 发送,但定时任务每 5 分钟运行一次,实际可能在下一次 cron 执行时发送。超时同理,超过截止时间后,通常会在下一次 10 分钟超时检查任务中被处理。
提醒设置
提醒设置用于在任务截止时间前后发送提醒。
提醒的核心基准是:
任务截止时间。
例如任务截止时间是 18:00,提醒规则配置为「截止时间之前 2 小时」,那么提醒计划发送时间就是 16:00。
触发时间
触发时间由三个部分组成:
-
截止时间;
-
之前或之后;
-
偏移量和单位。
例如:
截止时间之前 2 小时
表示在任务截止时间前 2 小时发送提醒。
如果任务截止时间是 18:00,提醒时间就是 16:00。
再比如:
截止时间之后 30 分钟
表示任务已经超过截止时间 30 分钟后再发送提醒。
如果任务截止时间是 18:00,提醒时间就是 18:30。
提醒渠道
提醒渠道决定提醒通过什么方式发送。
当前常用渠道包括:
-
Odoo 通知;
-
邮件通知。
Odoo 通知适合站内提醒。
邮件通知适合审批人不一定登录 Odoo 的场景。
如果选择邮件通知,需要保证 Odoo 邮件服务器配置正确,否则系统可能只生成邮件记录,无法真正投递到外部邮箱。
提醒接收人
提醒接收人决定提醒发给谁。
常见接收人包括:
-
当前处理人;
-
流程发起人。
当前处理人适合提醒审批人或办理人尽快处理任务。
流程发起人适合让发起人知道任务还没有被处理,方便线下跟进。
邮件模板
提醒设置中也可以选择邮件模板。
这里选择的是当前业务模型对应的 mail.template 邮件模板。
如果配置了模板,邮件提醒会优先使用这个模板渲染邮件主题和正文。
如果没有配置模板,系统会继续使用全局提醒模板或内置默认模板。
重复提醒
重复提醒用于在任务没有完成时,按照固定间隔继续发送提醒。
例如:
-
第一次提醒:截止时间前 2 小时;
-
启用重复提醒;
-
每隔 1 小时发送一次;
-
最多 3 次。
这里的“最多 3 次”指的是同一条提醒规则最多触发 3 次,包括第一次提醒。
也就是说,如果第一次提醒已经发送成功,系统会把次数记为 1;如果任务仍然没有处理,并且还没有达到次数上限,就会安排下一次提醒。
重复提醒的计算方式
重复提醒不是从最初的截止时间一直推算固定时间点,而是:
每次提醒发送后,再从当前发送时间开始计算下一次提醒时间。
例如:
-
第一次提醒在
16:00发送; -
重复间隔为 1 小时;
-
下一次提醒会安排在
17:00左右; -
如果
17:00的提醒由 cron 在17:03实际发送,那么再下一次会基于17:03往后计算。
所以重复提醒的实际发送时间会受到定时任务执行时间影响,可能会有几分钟偏差。
任务完成后提醒会取消
如果审批任务或办理任务已经完成,后续 pending 状态的提醒会被取消,不会继续发送。
如果提醒任务到期时发现关联的审批或办理任务已经不是 pending 状态,也会自动取消该提醒。
使用建议
如果只是普通审批,可以设置较宽松的超时时间,例如 24 小时 或 2 工作日。
如果是演示环境,可以设置 1 分钟 或 5 分钟,这样方便快速看到提醒和超时效果。
如果是正式业务,建议谨慎使用自动同意和自动拒绝。对于重要流程,更推荐使用“超时转交”或“只记录日志”,避免因为无人处理而自动放行业务风险。
如果开启重复提醒,次数不要设置过多。一般 2 到 3 次就足够,否则容易造成通知噪音。