• Flowable 定时器事件


    # 注意数据库时区的配置,如果差8小时配置成Asia/Shanghai
    spring.datasource.url=jdbc:mysql://localhost:3306/flowable660?serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
    
    # 开启定时任务功能
    flowable.async-executor-activate: true
    
    • 1
    • 2
    • 3
    • 4
    • 5

    一:中间计时器捕获事件

    中间计时器捕获事件会到了开始时间之后就会自动流转到下一个节点。
    注意:开始时间的日期格式是固定的带有T。
    在这里插入图片描述

    @RestController
    @RequestMapping("flowable")
    public class FlowableController {
    
        @Autowired
        private RepositoryService repositoryService;
    
        @Autowired
        private RuntimeService runtimeService;
    
        @Autowired
        private TaskService taskService;
    
        @RequestMapping("timer")
        public String timer() {
            Deployment deploy = repositoryService.createDeployment()
                    .addClasspathResource("processes/TimerProcess.bpmn20.xml")
                    .name("定时器流程")
                    .deploy();
            System.out.println(deploy.getId());
    
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("TimerProcess");
    
            Task task = taskService.createTaskQuery()
                    .processInstanceId(processInstance.getId())
                    .singleResult();
            taskService.complete(task.getId());
            return task.getTaskDefinitionKey();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    ACT_RU_TIMER_JOB
    在这里插入图片描述

    到达指定时间2023-11-16 10:06:00会自动从“中间计时器捕获事件”进入到下一个节点。注意:定时任务加上代码处理时间和实际真正执行时间有稍微的延后。
    在这里插入图片描述

    二:边界计时器事件流程

    在绘制流程图时需要将 “边界计时器事件” 拖放到 UserTask的正上方。如果启动项目时报一下错误,可能是在绘制 “边界计时器事件” 时有问题, 可以重新拖动一下“边界计时器事件”的位置,然后重新部署

    在这里插入图片描述

    Caused by: org.xml.sax.SAXParseException: cvc-complex-type.4: 元素 ‘boundaryEvent’ 中必须包含属性 ‘attachedToRef’。

    <boundaryEvent id="sid-1AB618F7-3B28-444A-B38D-10EE232EF122" attachedToRef="UserTask1" cancelActivity="true">
      <timerEventDefinition>
        <timeDate>2023-11-16T10:45:00timeDate>
      timerEventDefinition>
    boundaryEvent>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    @RequestMapping("boundarTimer")
    public Object boundarTimer() {
        Deployment deploy = repositoryService.createDeployment()
                .addClasspathResource("processes/BoundaryTimerEventProcess.bpmn20.xml")
                .name("边界定时器事件流程")
                .deploy();
        System.out.println(deploy.getId());
    
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("BoundaryTimerEventProcess");
    
        List<String> currentNodeList = taskService.createTaskQuery()
                .processInstanceId(processInstance.getId())
                .list().stream()
                .map(item -> item.getTaskDefinitionKey()).collect(Collectors.toList());
        return currentNodeList;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    当到达UserTask1上面的边界定时时间设定的时间点时UserTask1对应的处理人还没有审批,节点就会交给UserTask3节点审批
    在这里插入图片描述

  • 相关阅读:
    尚硅谷webpack5笔记base部分
    Vue中如何获取dom元素?
    【Django】DRF开发中的一些技巧记录
    消息总线 —— SpringCloud Bus
    解决 sharp: Installation error: unable to verify the first certificate
    kubernetes之DaemonSet以及滚动更新
    3.4 bp,si,di寄存器,寻址方式,寄存器总结
    KT148A4语音芯片芯片设备批量升级_一拖八的工具_V1
    Spring 事务原理总结七
    C#/.NET/.NET Core优秀项目和框架2023年10月简报
  • 原文地址:https://blog.csdn.net/vbirdbest/article/details/134435415