返回

携手Flowable,助你轻松驾驭实时流程!

后端

Flowable定时器:构建智能和动态业务流程

简介

Flowable定时器是流程引擎中的一个强大工具,允许您在指定时间或事件触发时自动执行任务。它为业务流程增加了灵活性,使您可以创建更智能、更自动化的工作流。

定时器类型

Flowable提供了两种类型的定时器:

  • 时间触发器: 根据预定义的时间间隔或特定日期/时间触发。
  • 事件触发器: 根据特定事件触发,如消息接收、信号触发等。

使用指南

要使用Flowable定时器,您需要在流程定义中添加定时器任务节点。此节点指定定时器的类型、触发条件和执行动作。

添加定时器任务节点

在流程图编辑器中,拖放“定时器”图标或单击工具栏中的“定时器”按钮以添加定时器任务节点。

配置定时器属性

双击定时器任务节点以打开属性面板。在此面板中,您可以配置以下选项:

  • 类型: 选择定时器的类型(时间或事件)。
  • 触发条件: 指定触发时间(时间定时器)或触发事件(事件定时器)。
  • 执行动作: 选择当定时器触发时要执行的活动(发送消息、调用服务等)。

示例

以下XML代码展示了一个简单的流程定义,其中包含一个定时任务节点,每5分钟触发一次并发送消息:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://flowable.org/bpmn">
  <process id="myProcess">
    <startEvent id="startEvent" />
    <sequenceFlow id="flow1" sourceRef="startEvent" targetRef="timerTask" />
    <task id="timerTask" name="定时任务">
      <timerEventDefinition>
        <timeDuration xsi:type="tns:PT5M" />
      </timerEventDefinition>
    </task>
    <sequenceFlow id="flow2" sourceRef="timerTask" targetRef="endEvent" />
    <endEvent id="endEvent" />
  </process>
</definitions>

注意事项

使用Flowable定时器时,请注意以下事项:

  • 定时器任务节点仅适用于支持定时器的流程定义。
  • 定时器任务节点的触发时间或事件必须是唯一的。
  • 定时器任务节点的执行动作必须是原子性的。
  • 定时器任务节点的执行动作不应包含循环或递归调用。

总结

Flowable定时器是一个强大的工具,可帮助您构建动态、响应事件的业务流程。通过合理使用定时器,您可以自动化流程、提高效率并创建更加智能和灵活的工作流。

常见问题解答

  1. 如何创建时间触发器?

    使用“时间触发器”选项,指定触发时间(例如,5分钟后或特定日期)。

  2. 如何创建事件触发器?

    使用“事件触发器”选项,选择触发事件(例如,消息接收或信号触发)。

  3. 定时器任务节点可以同时具有时间和事件触发器吗?

    否,定时器任务节点只能具有一个触发器(时间或事件)。

  4. 定时器任务节点可以执行多个操作吗?

    否,定时器任务节点只能执行一个操作(发送消息、调用服务等)。

  5. 如何处理定时器任务节点的失败?

    Flowable提供了重试机制来处理失败的定时器任务。可以在流程定义中配置重试次数和间隔。