activiti实现任务超时,创建job不执行的原因

本文介绍了解决Activiti工作流引擎中定时任务不执行的问题。通过配置jobExecutorActivate参数并集成Spring管理,成功激活了定时任务的执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近刚开始上手activiti,发现在使用定时任务时,创建了定时job,缺一直不执行。


情况如下:

首先通过配置定时器穿件一个定时任务,设置超时时间60秒

<boundaryEvent id="boundarytimer1" name="Timer" attachedToRef="任务1" cancelActivity="true">
      <timerEventDefinition>
	      <timeDuration>PT60S</timeDuration>
      </timerEventDefinition>
</boundaryEvent>

当流程执行到该任务节点时,数据库中产生了一条job数据。其中字段DUEDATE_的值为当前时间60S后。

但是时间过了60秒,job并没有按预期执行。

翻看文档,发现Activiti的Job管理器,默认是关闭的,需要通过设置processEnginConfiguration中的<property name="jobExecutorActivate" value="false" />激活。


配置后重新尝试上述步骤,job任然未执行。

继续查看文档,发现是activiti与spring集成时,需要将activiti的引擎配置交由Spring来管理。

将activiti.cfg.xml中的bean,processEnginConfiguration,重新配置。

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource" />
    <property name="databaseSchemaUpdate" value="true" />
    <property name="jobExecutorActivate" value="true" />
  </bean>
  
  <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
   <property name="processEngineConfiguration" ref="processEngineConfiguration" />
  </bean>


重启web容器,成功执行job,任务被认领。


 




评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值