springboot开发flowable定时任务问题

 更新时间:2023年11月27日 11:37:04   作者:zl1zl2zl3  
这篇文章主要介绍了springboot开发flowable定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

springboot开发flowable定时任务

激活流程引擎的一步执行器

  @Bean
  public ExtProcessEngineConfiguration engineConfiguration(){
    ExtProcessEngineConfiguration engineConfiguration = new ExtProcessEngineConfiguration();
    engineConfiguration.setDatabaseSchemaUpdate("true");
    engineConfiguration.setDataSource(dataSource);
    engineConfiguration.setTransactionManager(transactionManager);
    engineConfiguration.setAsyncExecutorActivate(true);
    
    List<SessionFactory> customSessionFactories = new ArrayList<>();
    customSessionFactories.add(userEntityManagerFactory());
    customSessionFactories.add(groupEntityManagerFactory());
    customSessionFactories.add(membershipEntityManagerFactory());
    engineConfiguration.setCustomSessionFactories(customSessionFactories);
         
    return engineConfiguration;

流程图:

其中,定时任务节点类型是 Timer Intermediate Catch Event

设置Timer Definition Type,有3种类型:

  • Date(指定某个时间点触发)
  • Duration(延时一段时间触发)
  • Cycle(循环触发直到某个时间点结束)

timeDate

<timerEventDefinition> <timeDate>2018-02-06T12:13:14</timeDate> </timerEventDefinition>

在确切的时间点执行

timeDuration

<timerEventDefinition> <timeDuration>P10D</timeDuration> </timerEventDefinition>

 从最后一个任务完成后10天开始执行

timeCycle

<timerEventDefinition>
  <timeCycle activiti:endDate="2018-02-25T16:42:11+00:00">R3/PT10H</timeCycle>
</timerEventDefinition>

或者变量形式:

<timerEventDefinition>
  <timeCycle>R3/PT10H/${EndDate}</timeCycle>
</timerEventDefinition>

循环3次,间隔10小时

也可以使用cron expressions :http://www.quartz-scheduler.org/documentation/

比如设置了

<timerEventDefinition> <timeDate>2018-02-06T12:13:14</timeDate> </timerEventDefinition>

流程开始后,如果还未到2018.02.06 12:13:14,数据会保存在act_ru_timer_job里直到时间达到,flowable会单独启动一个线程执行任务到领导审批节点,act_ru_timer_job里的数据删除。

注意点:

由于flowable会另启一个线程执行job,ThreadLocal相关变量都会获取不到。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MyBatis 全局配置文件详解

    MyBatis 全局配置文件详解

    MyBatis的全局配置文件定义了MyBatis的全局行为,本文主要介绍了MyBatis 全局配置文件详解,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • 简单了解java类的初始化以及类的实例化

    简单了解java类的初始化以及类的实例化

    这篇文章主要介绍了简单了解java类的初始化以及类的实例化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Java线程池队列DelayQueue的使用详解

    Java线程池队列DelayQueue的使用详解

    这篇文章主要介绍了Java线程池队列DelayQueue的使用详解,DelayQueue顾名思义,它是个无边界延迟队列,它的底层是基于PriorityBlockingQueue实现的,该队列中的元素都是按照过期时间顺序排序的,队列头部放的是即将过期的元素,需要的朋友可以参考下
    2023-12-12
  • 利用SpringBoot解决多个定时任务阻塞的问题

    利用SpringBoot解决多个定时任务阻塞的问题

    当我们在Spring Boot应用中使用多个定时任务时,任务之间的阻塞可能是一个常见的问题,这可能会因任务之间的依赖、执行时间过长或资源争用等原因而发生,本文让我们深入探讨如何利用Spring Boot来解决多个定时任务阻塞的问题,感兴趣的小伙伴跟着小编一起来看看吧
    2024-01-01
  • java实现字符串排列组合问题

    java实现字符串排列组合问题

    这篇文章主要为大家详细介绍了java实现字符串排列组合问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 详解java各种集合的线程安全

    详解java各种集合的线程安全

    这篇文章主要介绍了详解java各种集合的线程安全,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • java腾讯AI人脸对比对接代码实例

    java腾讯AI人脸对比对接代码实例

    这篇文章主要介绍了java腾讯AI人脸对比对接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java面试题冲刺第十三天--数据库(3)

    Java面试题冲刺第十三天--数据库(3)

    这篇文章主要为大家分享了最有价值的三道数据库面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java中的强引用,软引用,弱引用,虚引用的作用介绍

    Java中的强引用,软引用,弱引用,虚引用的作用介绍

    这篇文章主要介绍了Java中的强引用,软引用,弱引用,虚引用的作用,下文内容具有一定的知识参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-02-02
  • Java 二维数组创建及使用方式

    Java 二维数组创建及使用方式

    这篇文章主要介绍了Java 二维数组创建及使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08

最新评论