记载一次遇到的session问题,在我们网站中,有一个公共板块显示是否解绑卡的图标,既然是公共板块,我就把这个状态用放在session中,可是当用户解卡或者绑卡的时候需要更新这个状态,对于解绑卡需要走银行那边,所以只有在银行通知我成功的时候我再去查询我们数据库的卡状态更新session,但是更新session可能会出现异常信息,所以我当时提取了个方法,并且把这个方法设置为异步的,就是因为这样,更新session就不行了,具体如下
@Async
public void dealUserBindCardInfo(HttpSession session,Long userId) {
try {
CardDTO cardDto= cardService.queryCardInfo(userId);
int status = cardDto != null ? 1 : 2;
session.setAttribute("CARD_STATUS", status);
} catch (Exception e){
logger.error("更新session中的状态失败,异常信息 e={}", e);
}
}
这样操作前端页面session更新失败,也就是说这里的异步更新session必须要转为同步操作。
网友评论