跳到主要内容

后台任务

后台任务是JitTask框架中实现周期性、自动化业务处理的核心能力。通过后台任务,开发者可以让系统在无需人工干预的情况下,定时或按需自动执行特定的业务逻辑。

JitAi提供两种类型的后台任务:定时任务按固定时间周期执行,日期字段任务基于数据表中的日期字段触发。

任务创建

创建定时任务

在开发区元素树中,点击搜索框旁的 + 按钮,选择后台任务,然后根据需求选择定时任务(固定周期执行)或日期字段任务(基于数据触发)。

定时任务

定时任务按固定时间周期自动执行,是最常用的后台任务类型。

应用场景

定时任务广泛应用于各种自动化场景:

  • 数据同步:每小时从外部系统同步数据,确保数据实时性。
  • 报表生成:每天定时生成销售报表,为管理决策提供支持。
  • 数据清理:每周清理过期的临时文件,释放存储空间。
  • 系统维护:每月执行数据库优化,保持系统性能。
  • 消息推送:每天定时发送通知消息,提升用户体验。

配置步骤

定时任务创建流程

在“新建定时任务”弹窗中,输入任务名称(系统会自动生成英文名),设置开始时间(必填)和结束时间(可选),选择任务的重复周期以及是否跳过节假日。配置完成后,即可创建定时任务并进入可视化编辑器进行后续操作。

开始结束时间设置

定时任务使用固定的时间点控制任务的开始和结束:

  • 开始时间:任务首次执行的时间点,必填项。
  • 结束时间:任务停止执行的时间点,选填项。如果不填写,任务将持续执行。

日期字段任务

日期字段任务基于数据表中的日期或日期时间字段值触发,实现与业务数据紧密结合的自动化处理。

应用场景

日期字段任务在业务数据管理中发挥重要作用:

  • 到期提醒:在合同到期前自动发送提醒,避免业务中断。
  • 会员管理:在会员过期后自动调整权限,确保服务的准确性。
  • 订单处理:对超时订单自动取消,释放库存资源。
  • 账单管理:在账单到期时自动发送催缴通知,提高回收效率。
  • 预约管理:在预约时间到达前自动提醒,减少爽约情况。

配置步骤

日期任务弹窗

开发者需要在新建日期字段任务弹窗中,输入任务名称(英文名会自动生成),选择数据模型,设置筛选条件,设置开始时间(必填)和结束时间(可选)。选择重复周期。选择是否跳过节假日。配置完成即可创建日期字段任务并进入可视化编辑器。

模型选择与数据筛选

模型选择阶段,需要选择包含日期字段的数据表模型。在字段选择阶段,指定用于触发任务的日期/时间字段。通过筛选条件设置,可以添加额外的数据筛选条件,只有满足条件的数据才会触发任务,从而提高任务执行的精确性和效率。

任务准时/提前/延后触发

支持根据日期字段的值,灵活设置在该日期的前后若干天、指定的具体时间点自动触发任务,满足多样化的业务场景需求。

开始时间

在配置日期字段任务的开始时间时,首先需要选择一个日期或日期时间类型的字段。

日期设置开始时间

如果选择的是日期类型字段,系统支持设置在该日期的前后若干天,并指定具体的小时和分钟作为任务的触发时间。

日期时间设置开始时间

如果选择的是日期时间类型字段,则可以设置在该时间的前后若干天自动触发任务,精确到具体的时间点。

结束时间

结束时间的配置方式有两种:一是直接选择一个固定日期作为任务的截止时间;二是选择一个日期或日期时间字段,并可设置在该字段时间的前后或当前的具体时间点,灵活满足不同业务需求。

结束时间设置

开发者可以在日期字段任务的可视化编辑器中选择结束时间为固定值或者字段值。

通用配置项

无论选择哪种任务类型,都需要配置以下基础设置:

重复周期

系统提供7种重复周期,满足不同业务需求:

  • 不重复:仅执行一次。适用于一次性任务、临时处理等场景。
  • 每小时:每小时执行一次。适用于实时数据同步、监控检查等场景。
  • 每天:每天执行一次。适用于日报生成、日常清理等场景。
  • 每周:每周执行一次。适用于周报统计、定期备份等场景。
  • 每月:每月执行一次。适用于月度报表、账单生成等场景。
  • 每年:每年执行一次。适用于年度统计、系统维护等场景。
  • 自定义:可灵活配置执行周期。适用于复杂时间规则的场景。

节假日处理

启用跳过节假日功能后,遇到法定节假日时任务会自动跳过,并在下一个工作日执行。这个功能特别适用于办公类任务、财务处理、业务报表等需要避开节假日的场景。

任务执行函数开发

任务创建完成后,需要编写具体的执行逻辑。JitAi提供两种函数开发方式:

任务内函数

任务内函数是将函数逻辑直接写在任务元素内部,适合处理简单、不需要复用的专用逻辑,也适合快速原型开发。创建任务后,系统会自动进入函数编辑界面,开发者可以在可视化编辑器中拖拽组件或切换到代码模式直接编写代码。

任务内函数

日期任务内函数

开发者可在任务的可视化编辑器下方直接编写任务内函数逻辑。对于定时任务,任务内函数无需参数;而日期字段任务的任务内函数则会自动接收当前模型行的数据作为参数,便于处理与该数据相关的业务逻辑。

服务函数

服务函数是指将函数写在独立的服务元素中,适合处理复杂或需要复用的业务逻辑,也方便团队协作。开发时,先创建服务元素并编写函数,然后在任务中直接调用这些服务函数,还可以根据需要组合多个服务函数来实现更复杂的处理。

服务函数

开发者可以在任务的可视化编辑器中切换执行函数为服务函数,然后在右侧输入框选择对应服务的函数。

参数说明
  • 对于定时任务,任务内函数在执行时不接收任何参数,因此如果选择服务函数作为执行函数,也应确保该服务函数不需要参数。
  • 对于日期字段任务,任务内函数会自动接收当前模型行的数据作为参数,因此如果选择服务函数作为执行函数,也应确保该服务函数的参数签名与任务内函数一致,即接收当前模型行的数据作为参数,数据类型为单行数据

执行记录查看

任务监控功能提供了完整的执行记录查看能力,开发者可以查看任务历史执行记录,监控任务执行状态和结果,并分析任务执行耗时和性能表现,帮助及时发现和解决问题。

查看执行记录

开发者可以在任务的可视化编辑器中,点击右上方的执行记录进入到执行记录窗口。

执行记录窗口

在执行记录窗口中,您可以直观地查看各类任务状态,包括待执行、执行中、已逾期和已完成的任务。同时支持按开始和结束时间灵活筛选执行记录,便于快速定位和分析任务执行情况。

源码模式

任务源码配置

开发者在可视化编辑器中可以调整任务配置,也可以点击右上方切换到源码模式。在源码模式下,可以手动修改配置文件 e.json,或修改 inner.py 文件来更改函数逻辑。

性能优化提示
  • 合理设置任务的执行频率,避免过于频繁触发造成系统资源压力。
  • 针对大批量数据处理任务,建议采用分批处理方式,以提升效率和系统稳定性。