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相关变量都会获取不到。

总结

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

相关文章

  • java项目中使用 Lombok遇到的问题小结

    java项目中使用 Lombok遇到的问题小结

    这篇文章主要介绍了java项目中使用 Lombok遇到的问题小结,需要的朋友可以参考下
    2018-07-07
  • 利用Java实现红黑树

    利用Java实现红黑树

    红黑树是众多“平衡的”搜索树模式中的一种,在最坏情况下,它相关操作的时间复杂度为O(log n),接下俩小编将子啊下文详细介绍Java是如何实现红黑树的
    2021-09-09
  • mybatis使用mapper代理开发方式

    mybatis使用mapper代理开发方式

    使用MyBatis代理开发模式时,需要注意定义与映射配置文件同名的接口类,确保namespace属性与接口路径一致,接口方法名和映射文件中的id名称相同,返回类型保持一致,在mybatis-config.xml中配置映射文件路径,保证结构一致,可通过注解@Param传递多个参数
    2024-10-10
  • Java编写猜数字小游戏

    Java编写猜数字小游戏

    这篇文章主要为大家详细介绍了Java编写的猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • javaWeb自定义标签用法实例详解

    javaWeb自定义标签用法实例详解

    这篇文章主要介绍了javaWeb自定义标签用法,结合实例形式分析了javaweb自定义标签的功能、定义方法及执行原理,需要的朋友可以参考下
    2017-04-04
  • java中jar包的生成与使用方式

    java中jar包的生成与使用方式

    这篇文章主要介绍了java中jar包的生成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Spring中使用Hystrix实现熔断详解

    Spring中使用Hystrix实现熔断详解

    这篇文章主要介绍了Java中使用Hystrix实现熔断详解,对于第一个问题,查看hystrix源码可以看到,如果有缓存配置是优先使用的缓存的,因此如果配置更新,必须要更新缓存,不能使用Hystrix.reset()方法来更新缓存,需要的朋友可以参考下
    2023-12-12
  • Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意点

    Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意点

    有时候很多css文件是公共的,我们必须要在每个html文件中引入它们,下面这篇文章主要给大家介绍了关于Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意点,需要的朋友可以参考下
    2024-06-06
  • 浅谈springboot一个service内组件的加载顺序

    浅谈springboot一个service内组件的加载顺序

    这篇文章主要介绍了springboot一个service内组件的加载顺序,具有很好的参考价值,希望对大家有所帮助。以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家
    2021-08-08
  • AsyncHttpClient的ConnectionSemaphore方法源码流程解读

    AsyncHttpClient的ConnectionSemaphore方法源码流程解读

    这篇文章主要为大家介绍了AsyncHttpClient的ConnectionSemaphore方法源码流程解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12

最新评论