首先声明一个雷,UccClientBean 实现 InitializingBean(spring的)。
在afterPropertiesSet方法中,启动单定时任务线程池 Executors.newSingleThreadScheduledExecutor,再执行
scheduledExecutor.scheduleWithFixedDelay(new BlockingThread(), 3, 5, TimeUnit.SECONDS);
其中Blocking为长轮训线程。主要是将拼接好的url,组装一个request对象,再结合Future和Async执行调用。
Request request = Request.Get(url);
request.connectTimeout(socketTimeout);
request.socketTimeout(socketTimeout);
(类总声明一个Async async = Async.newInstance())
Future<Content> future = async.execute(request, new FutureCallback<Content>());
在从覆盖的completed方法中取数据,将通过缓存Map中事先存入的listener转为自己的业务实体对象,将返回的值设置进去。