Java 异步调用
最近做的一个电商项目 便利店人民币支付的时候接口返回15s 测试体验太差 由于牵扯调用多个服务 有的只能同步调用 便只做了个通知调用自动正常收款的接口 异步调用 亲测有效 用的是CompletableFuture 这个是java1.8的新特性, 是对Future的扩展。CompletableFuture实现了CompletionStage接口和Future接口,增加了异步回调、流式处理、多个Future组合处理的能力
public static void methodName(null null) {
ExecutorService executorService = Executors.newSingleThreadExecutor();
CompletableFuture.runAsync(() ->{
log.info("异步线程 =====> 开始 =====> " + System.currentTimeMillis());
try {
--------处理逻辑
} catch (Exception e) {
log.error(“订单id为:” + scbOrder.getOrderId() + “调用php的自动确认收款接口异常:” + e);
}
log.info("异步线程 =====> 结束 =====> " + System.currentTimeMillis());
},executorService);
executorService.shutdown(); // 回收线程池
}