跳到主要内容

超时与提醒

超时与提醒

超时配置用于给审批任务或办理任务设置一个截止时间。当任务到达当前节点后,系统会根据这里配置的超时时长计算出任务的截止时间;后面的提醒规则、重复提醒、超时处理,都是围绕这个截止时间运行的。

简单来说:

先有超时时间,才有截止时间;提醒规则是基于截止时间计算的。

如果节点没有启用超时处理,或者没有配置超时时长,那么任务通常不会生成截止时间,提醒规则也就没有可靠的触发基准。

超时处理

启用超时处理

开启「启用超时处理」后,系统会在任务创建时计算截止时间,并把这个截止时间记录到对应的审批任务或办理任务上。

例如:

  • 审批任务到达节点时间: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 次就足够,否则容易造成通知噪音。