java启动多线程进行异步处理

public class InitListener implements ServletContextListener{

 private static Logger logger = Logger.getLogger(InitListener.class);
 // 资讯索引生成器
 private InfoIndexJob infoIndexJob;
 
 @Override
 public void contextDestroyed(ServletContextEvent arg0) {
  
  
 }

 @Override
 public void contextInitialized(ServletContextEvent arg0) {
  
  if (null == infoIndexJob) {
   infoIndexJob = SpringContextHolder.getBean("InfoIndexJob");
   if(infoIndexJob != null){
    Thread t = new Thread(infoIndexJob);
    t.start();
   }
   logger.info("InitListener:注入资讯索引生成器InfoIndexJob!");
  }
  
 }

}

 

 

 

/**
 * 通过 Runnable接口实现
 *
 * @author wang_fan
 *
 */
@Component("InfoIndexJob")
public class InfoIndexJob implements Runnable{

 private static Logger logger = Logger.getLogger(InfoIndexJob.class);

 @Autowired
 private PSSM9001Service pssM9001Service;

 public void run() {
  logger.info("开始重建资讯信息搜索词索引");
  try {
   int counts = pssM9001Service.createInfosIndex();
   logger.info("结束重建资讯信息搜索词索引,重建" + counts + "条搜索词");
  } catch (Exception e) {
   logger.error("重建资讯信息搜索词时发生异常", e);
  }
 }

}

 

下面通过Thread类继承实现

SubjectThread subjectThread = new SubjectThread(subjectMap,ZglsscObsConstants.OBS_SUBJECT_UPDATE_3);
    subjectThread.start();

 

class SubjectThread extends Thread{
  private Map<Object, Object> subjectMap;
  private String updateType;
  
  
  public SubjectThread(Map<Object, Object> subjectMap, String updateType) {
   this.subjectMap = subjectMap;
   this.updateType = updateType;
  }


  @Override
  public void run() {
   // TODO Auto-generated method stub
   try {
    obsM1001Service.updateSubject(subjectMap,updateType);
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值