while(!appList.isEmpty()){ //while循环会等到异步的DB更新完成(也就是缓存数据不为空)后才返回数据-》解决异步老数据
response.setResponse(appList);
}
在主线程代码内新建一个新的线程,就是创建异步于主线程的异步线程,
异步线程会在主线程执行完毕之后再执行。
在异步执行db更新之前先将用户传入的dto直接存入缓存返回给用户,作为快速反馈
在更新db的异步线程里
将缓存的清空放在db更新线程之前,
缓存的更新放在db更新之后,
这样再get方法里用while等待缓存的更新就可以避免获取到未更新的老旧数据
appList.clear(); // 放在db更新的线程之前(controller方法进入时)保证success时一定是空