jbpm4.4 timer的使用

今天学习了jbpm4 的timer使用,一直测试都不成功:配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<process key="TimerTransition" name="TimerTransition" xmlns="http://jbpm.org/4.4/jpdl">

    <start g="0,75,80,40">
        <transition to="guardedWait"/>
    </start>

    <state g="202,96,108,40" name="guardedWait">
        <transition g="-49,-22" name="timeout" to="escalation">
            <timer duedate="5 seconds"/>
        </transition>
    </state>

    <state g="456,118,80,40" name="escalation"/>

</process>

如图,设置为5秒后自动到达escalation节点,部署完任务后调用:

ProcessInstance instance = super.executionService
                .startProcessInstanceByKey("TimerTransition");

然后5s后获取当前位置:

ProcessInstance instance = super.executionService
                .findProcessInstanceById("TimerTransition.260001");
        System.out.println(instance.findActiveActivityNames().toString());

每次获取都是在节点guardedwait节点中,甚是郁闷。

后来想想才明白,我程序部署完后就停止了,不是web环境的,任务执行完了就停止了,job根本无法执行,后来改了如下:

ProcessInstance instance = super.executionService
                .startProcessInstanceByKey("TimerTransition");
        Job job = managementService.createJobQuery().timers()
                .processInstanceId(instance.getId()).uniqueResult();
        System.out.println("job到期:" + job.getDuedate());
        // ProcessInstance instance = super.executionService
        // .findProcessInstanceById("TimerTransition.910001");
        try
        {
            Thread.sleep(5000);
        } catch (InterruptedException e)
        {
            e.printStackTrace();
        }
        String name = instance.findActiveActivityNames().toString();
        System.out.println("当前节点:" + name);

        System.out.println("instanceId:" + instance.getId());

ok执行成功,成功自动运行到节点es










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值