首页 > 编程语言 > 详细

java中开启异步任务

时间:2015-07-01 11:51:21      阅读:713      评论:0      收藏:0      [点我收藏+]

 

 


一般写在Controller里面
    
    @ResponseBody
    @RequestMapping("/logOutCaigou")
    public boolean logOutCaigou(ModelAndView mav, @Param("memberId")Long memberId, @Param("openId")String openId) {
        
        saveLoginLog(openId, memberId, LoginLog.LOGOUT); //存储登出日志
        return true;
    }

//开启异步记日志
启动异步线程。、,后台执行任务。任务开启后,就return直接返回
不需要等待任务执行完成
private void saveLoginLog(final String openId, final long memberId, int type) {
        
        ExecutorService exec = Executors.newSingleThreadExecutor(); //开启异步单例线程
        exec.execute(new Runnable() {
            public void run() {
                iLoginLogService.saveLoginLog(openId, memberId, LoginLog.LOGIN); //存储登录日志
            }
        });
        return;
    }




Service里面

    @Override
    @TradingDataSource(name = DataSources.WRITE_WECHAT_DATASOURCE)
    public boolean saveLoginLog(String openId, long memberId, int type) throws ServiceException {
        
        LoginLog loginLog = new LoginLog();
        loginLog.setId(sequenceUtil.getSeqNextVal("seq_login_log"));
        loginLog.setOpenId(openId);
        loginLog.setMemberId(memberId);
        loginLog.setState(type);
        String key = CaigouConstant.CACHEKEY_ADDRESS_PREFIX + openId;
        cacheManagerDao.set(key, "北京北京"); //保存详细地址
        loginLog.setDeviceMessage(cacheManagerDao.get(key).toString());
        iLoginLogDao.saveLoginLog(loginLog);
        return true;
    }



java中开启异步任务

原文:http://www.cnblogs.com/mjzhang/p/4612665.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!