增加使用DeferredResult处理复杂的多线程的请求

This commit is contained in:
lsy
2017-11-25 14:59:24 +08:00
parent 7303c8d23f
commit e92ef089da
2 changed files with 3 additions and 1 deletions
@@ -20,12 +20,13 @@ public class MockQueue {
new Thread(()->{
this.placeOrder = placeOrder;
System.out.println("开始处理订单");
this.completeOrder = placeOrder;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.completeOrder = placeOrder;
System.out.println("结束处理订单");
}).start();
}
@@ -22,6 +22,7 @@ public class QueueListener implements ApplicationListener<ContextRefreshedEvent>
while(true){
if (StringUtils.isNotBlank(mockQueue.getCompleteOrder())){
deferredResultHolder.getMap().get(mockQueue.getCompleteOrder()).setResult("success");
mockQueue.setCompleteOrder(null);
}else{
try {
Thread.sleep(100);