jbpm3的timer开发问题

在高杰所著的  深入浅出JBMP  书做练习时遇到一个问题纠缠了很久,

所要练习的内容: jbpm 任务执行器,timer定时器,希望在任务实例产生30秒后,每隔20秒能在控制台循环输出 "触发test job timer”

流程图如上,定义如下

 

<start-state name="start-state1">
  <transition to="task-node1"></transition>
 </start-state>


 <task-node name="task-node1">
  <task name="test-task">
   <assignment actor-id="ziliang871118"></assignment>
  </task>
  <timer name="test job timer" duedate="30 seconds" repeat="20 seconds">
   <script>
    System.out.println("触发test job timer");
   </script>
  </timer>
  <transition to="end-state1"></transition>
 </task-node>


 <end-state name="end-state1"></end-state>

 

按照上述代码我写了一个测试类,

 

public static void main(String[] args) {

 

   JbpmConfiguration.getInstance().getJobExecutor().start();

  System.out.println("流程测试开始.......");
  JbpmContext jbpmContext = JbpmConfiguration.getInstance()
    .createJbpmContext();
  try {
   ProcessDefinition processDefinition = jbpmContext.getGraphSession()
     .findLatestProcessDefinition("asynctest");
   ProcessInstance pi = processDefinition.createProcessInstance();
   Token token = pi.getRootToken();
   token.signal();
   System.out.println("当前流程的节点名:" + token.getNode().getName());
     } finally {
   jbpmContext.close();
  }

 }

 

运行上述代码,输出结果如下:

 

当前流程的节点名:task-node1

 

并没有预想的 循环字符串输出, 纠结了很久,最后发现我的任务执行器和测试类写在了一个线程上,所以看不到想要的输出。

 

把上述的main方法 红色部分提出来单独开启一个任务执行器的线程,问题得到解决。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值