跳到主要内容

如何搭建定时控制器,实现数据的定时触发

前言

涉及:公式函数、审批节点、系统服务账号、超时自动提交、外部QR触发 支持轻流版本:600系列版本(6.0.0等)、700版本(如7.0.0等)

一、场景描述

在实际的业务场景中,周期性工作任务以及在未来特定时间点执行动作的需求十分常见。因此,系统必须依据预设的时间周期,定时定量地完成相关任务,以确保业务的顺畅进行。在轻流中,以往的实施方案是利用审批节点的超时自动提交功能来实现这一目标。然而,在实际使用过程中,若大量任务在同一时间执行,常常会引发“数据库死锁”问题,导致相关任务在指定时间未能正确触发。本实施方案将通过表单搭建的方式构建定时器表单,降低遇到“数据库死锁”问题的频率,从而提高系统的稳定性。

目标

  • 定时定量执行任务:根据预设的时间周期,定时触发任务,以确保业务顺利进行。
  • 减少数据库死锁问题:通过采用表单搭建的定时器方案,降低大量任务同时执行时引发数据库死锁的概率。
  • 提高系统稳定性:优化任务执行方式,确保任务在预定时间准确触发,增强系统的可靠性和稳定性。

关键需求

  • 定时任务触发机制:系统需要能够根据预设的时间周期和特定时间点,自动触发相应的任务,保证业务流程的连续性和准确性。
  • 避免数据库死锁:系统必须采取有效的措施,减少或避免在大量任务同时执行时,由于数据库操作引发的死锁问题,确保任务能够按时执行。
  • 表单驱动的定时器方案:通过表单的方式搭建定时器应用,替代传统的数据中添加审批节点超时自动提交功能,提高任务调度的灵活性和稳定性。
  • 高并发处理能力:系统需要具备处理大规模任务并发执行的能力,确保在高负载情况下依然能够保持稳定性,避免性能瓶颈。
  • 可监控和可配置性:定时任务需要具备可配置性和可监控性,用户可以根据需求设置任务执行的频率、时间以及条件,并能够实时监控任务执行状态,及时发现并解决问题。

二、实现思路

第一步:设置定时器应用

难度:无

1、创建一个定时器应用表单,在表单中添加两个日期字段,一个命名为“本次执行时间”,另一个命名为“下次执行时间”。然后,对“下次执行时间”的日期字段设置公式函数,“本次执行时间”无需设置任何值。例如,如果“本次执行时间”增加一天,则表示每天执行;如果增加三个月,则表示每季度执行一次。

image.png

image.png

2、“下次执行时间”字段在申请人节点开启“提交/通过时重新触发数据关联或公式”

image.png

3、创建一个审批节点叫做"等待到达开始时间",并根据表单内字段“本次执行时间”,设置自动提交

image.png 4、创建下次任务Q-robot

创建一个Q-robot新增叫做“创建下次定时任务”,对定时器应用(当前应用)新增。本次任务时间赋值为下次任务时间。 解释:A、B两个数据,A先产生B后产生,A的下次执行时间赋值给了B的本次执行时间。

image.png

第二步:创建业务表单

难度:无

根据需求设置业务表单,并在业务表单中增加一个字段叫做“监听”的时间字段,显示格式开启“时分秒”。

image.png

第三步:创建处理应用

难度:低-中

当业务应用被定时触发后需要执行的动作,表单中创建三个基础字段“来源应用”、“来源数据编号 ”、"来源数据id",后续如有其他字段需求可根据需要自行添加 来源应用:用于知道触发的数据属于哪个应用 来源数据编号:用于知道触发的数据,并可通过数据编号做筛选获取表单中其他相关值。

来源数据id:用于定位触发的数据,并可作为参数执行相关API参数。 如 1、达到指定时间后通过业务应用的相关待办,通过webhook完成API接口的调用;

2、周期性发起提醒或者待办动作

image.pngimage.png

第四步:设置触发监听Q-Robot

难度:低

对业务应用设置外部Q-robot叫做监听触发,设置当指定“监听”字段发生更新时,无重复周期,无筛选条件,添加数据到“处理应用”中。并赋值数据编号、和数据id

image.png

image.png

第五步:设置触发动作

难度:低

在“定时器应用”的流程中“等待到达开始时间”和“创建下次定时任务”Q-robot直接根据需求添加分值或相关判断。并添加一个Q-robot更新,对业务应用中符合条件数据的“监听”字段更新,也可根据需求在Q-Robot的筛选中添加条件。

image.png

image.png

第六步:初始化定时器

由于定时器是通过表单来循环增加数据的方式来触发QR码的更新,因此在系统搭建完成后,需要手动提交一条初始数据以启动整个流程。这条初始数据将作为定时器机制运行的基础。之后,定时器会依据预先设定的"下次执行时间"字段中的函数逻辑自动计算并生成下一次的数据记录。这样的设计确保了定时器能够按照预定的时间间隔持续地更新QR码信息,从而实现数据的循环处理和自动化更新。简单来说,这个过程依赖于首次的人工干预(即提交第一条数据),之后便可以依靠预设规则自动进行,无需进一步的手动操作。

三、特殊说明

由于整个系统或项目的构建需要多个应用表单协同工作才能完成,这在理解和实施过程中可能会带来一定的复杂性和挑战。因此,我建议首先按照教程逐步完成模型的搭建。这样做的好处是,您可以在实际操作中熟悉各个组件是如何相互作用的,同时也能够对整个流程有一个直观的认识。之后,当您已经成功地搭建起了模型,并且对其有了初步了解之后,再来深入研究背后的原理和技术细节。这种方法不仅有助于降低学习难度,还能让您更加系统地掌握所需的知识点,从而更好地应对未来可能遇到的各种问题。通过这种方式,您可以更有效地吸收信息,并将理论知识与实践经验相结合,为将来处理类似项目打下坚实的基础。