线程相关内容 批量复核触发线程

--在方法内部启动线程

for(List<TaskInstanceBean> o : oList) {
   BatchCheckThread t = new BatchCheckThread();
   t.setComment(comment);
   t.setStrDN(strDN);
   t.setTibs(o);
   t.setUser(this.getCurrentUser(request));
 
   t.setCountDown(end);
   new Thread(t).start();
}

 

BatchCheckThread  是一个内部类,然后在里面添加线程的代码

 

--跟踪哪个线程的里面执行的情况

Logger.getLogger(BatchCheckThread.class).info("开始执行线程:" + Thread.currentThread().getName() + ",条数:" + tibs.size());

 

--内部类里面执行线程

class BatchCheckThread implements Runnable {
 private String comment;
 private List<TaskInstanceBean> tibs;
 private User user;
 private String strDN;
 private CountDownLatch countDown = null;
 
 public void setCountDown(CountDownLatch countDown) {
  this.countDown = countDown;
 }
 public String getComment() {
  return comment;
 }
 public void setComment(String comment) {
  this.comment = comment;
 }
 public List<TaskInstanceBean> getTibs() {
  return tibs;
 }
 public void setTibs(List<TaskInstanceBean> tibs) {
  this.tibs = tibs;
 }
 public User getUser() {
  return user;
 }
 public void setUser(User user) {
  this.user = user;
 }
 public String getStrDN() {
  return strDN;
 }

 public void setStrDN(String strDN) {
  this.strDN = strDN;
 }

 @Override
 public void run() {
  try {
   long begin = System.currentTimeMillis();
   Logger.getLogger(BatchCheckThread.class).info("开始执行线程:" + Thread.currentThread().getName() + ",条数:" + tibs.size());
   execute();
   Logger.getLogger(BatchCheckThread.class).info("线程:" + Thread.currentThread().getName() + ",耗时:" + (System.currentTimeMillis() - begin) + " ms");
  } catch(Exception e) {
   new RuntimeException(e);
  } finally {
   if(null != countDown) countDown.countDown();
  }
 }
 
 private void execute() {
  if(null == tibs) return;
  for(TaskInstanceBean tib : tibs) {
   List<Transition> trans = tib.getAvailableTransitions();
   for(Transition tran : trans){
    String tansName = tran.getName();
    if(isCanApproval(comment, tib, tran)){
     ServiceFactory.getInstance().getJbpmProcessService().handelTask(tib.getTaskInstanceId(), tansName, user, "批量"+tansName, strDN ,null);
     break;
    }
   }
  }
 }
 
 private boolean isCanApproval(String comment, TaskInstanceBean tib, Transition tran) {
  if(tib.getTaskInstance().getName().equals("复核") && "同意".equals(comment)) {
   return "送审批".equals(tran.getName());
  }
  return tran.getName().equals(comment + tib.getTaskInstance().getName());
 }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值