开发中碰到类似受理业务等相关接口一般都是异步获取结果,要么就属于异步回调后再下一步处理业务,要么就定时轮询查询接口获取结果再下一步处理业务流程;此次碰到类似接口是没有异步回调处理,协同系统只提供业务受理接口及查询结果接口,不明确什么时间会有处理完成结果,仅给大概1分钟时间,只好使用轮询的方式查询结果 ;通过ExecutorService、Callable、Future实现有返回结果的多线程来轮询结果判断是否再下一步业务。
相关代码片段:
public Map
final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
// 总共轮询查询时间,单位秒
final int queryTime = 60;
// 间隔时间,单位秒
final int queryPeriod = 5;
// 使用ExecutorService、Callable、Future实现有返回结果的多线程。
Callable