@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;
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
网友评论