增加使用DeferredResult处理复杂的多线程的请求
This commit is contained in:
+2
-1
@@ -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();
|
||||
}
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user