当前位置: 移动技术网 > IT编程>开发语言>Java > 08接收任务

08接收任务

2019年12月26日  | 移动技术网IT编程  | 我要评论

开学第一课节目单,阳痿怎么办幸好看了圔夥08677,邮政速递电话

一、接收任务

接收任务(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;
    }



如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网