欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

08接收任务,

来源: javaer 分享于  点击 22423 次 点评:81

08接收任务,


一、接收任务

接收任务(ReceiveTask)即等待任务,接收任务是一个简单任务,它会等待对应消息的到达。当前,官方只实现这个任务的java语义。 当流程达到接收任务,流程状态会保存到数据库中。在任务创建后,意味着流程会进入等待状,直到引擎接收了一个特定的消息, 这会触发流程穿过接收任务继续执行。

1、流程图

 

 

代码实现:     //运行流程     @Test     public void doTask() {         RuntimeService runtimeService = this.processEngine.getRuntimeService();         String processDefinitionKey = "myProcess";         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey);         System.out.println("流程启动成功:" + processInstance.getId());                  /** 使用流程变量设置当日销售额,用来传递业务参数 */         int value = 0;// 应该是去查询数据库,进行汇总 ---耗时操作         int tryNum=0;//尝试汇总次数         while (true) {             tryNum++;             try {                 value = this.hzxx();                 break;             } catch (Exception e) {                 e.printStackTrace();                 if(tryNum==10) {                     System.out.println("尝试10次汇总。全部失败,已终止汇总");                     break;                 }             }         }         runtimeService.setVariable(processInstance.getId(), "当前的销售额", value);                  /** 向后执行一步,如果流程处于等待状态,使得流程继续执行 */         runtimeService.signal(processInstance.getId());                  /** 从流程变量中获取汇总当日销售额的值 */         Integer saleMoney = (Integer) runtimeService//                 .getVariable(processInstance.getId(), "当前的销售额");         System.out.println(saleMoney);         System.out.println("发送短信");         Boolean flag = false;         int num = 0;         do {             flag = send();             num++;             if (num == 10) {                 System.out.println("尝试10次发送。全部失败,已终止发送");                 break;             }         } while (!flag);
        /** 向后执行一步,如果流程处于等待状态,使得流程继续执行 */         runtimeService.signal(processInstance.getId());         System.out.println("流程执行完成");     }
    //汇总信息     public Integer hzxx() {         // 查询数据库         System.out.println("数据汇总中....");         try {             Thread.sleep(2000);         } catch (Exception e) {             e.printStackTrace();         }         System.out.println("数据汇总完成");         return 10000;     }
    //发送短信     private Boolean send() {         System.out.println("发送成功");         return true;     }



相关文章

    暂无相关文章
相关栏目:

用户点评