1.问题描述
进行导出时, 会从线程里取出用户数据, 但是因为导出开启了多线程, 导致用户数据可能取不到
2.问题原因
1.问题还是多线程, 开启了多线程后, 我从线程取数据, 用户数据不再当前线程. 而且偶尔能取到, 就是因为线程 切换, 不可控. 谁知道当前线程是不是存用户数据的线程.
2.前端传了个token, token包含用户参数, 然后由线程创建实例对象, 给对象设置属性值.
3.问题是, 导出开启了1 2 3线程, 然后 1线程有user数据, 2 3线程是null, 然后我当前的线程如果是1就取到用户数据了, 如果是2 3线程取到的就是null
3.解决方式
1.把参数返回给前端, 然后由前端来传参, 避免线程切换导致的数据被冲掉
2.用session存储数据, 中央session是基于Redis实现的, 用户数据是在缓存里面. 并且由Redis服务器保存, 是公用的. 不会受到线程影响