左晓为主开发手持机充值管理机
zuoxiao
5 天以前 548dce0bcff06ee7a1795defe8e7789b9d7aad94
easysocket/src/main/java/com/easysocket/connection/dispatcher/CallbackResponseDispatcher.java
@@ -29,7 +29,7 @@
     * 保存发送的每个回调消息的监听实例,key为回调标识callbackId,这样回调消息有反馈的时候,就可以找到并调用
     * 对应的监听对象
     */
    private Map<String, SuperCallBack> callbacks = new HashMap<>();
    private volatile Map<String, SuperCallBack> callbacks = new HashMap<>();
    /**
     * 保存需要进行超时检测的请求,这是一个延时队列,元素超时的时候会被取出来
     */
@@ -76,13 +76,19 @@
                timeoutExecutor.execute(new Runnable() {
                    @Override
                    public void run() {
                        LogUtil.d("任务超时轮询");
                        try {
                            // 只有超时的元素才会被取出,没有的话会被等待
                            timeoutItem item = timeoutQueue.take();
                            if (item != null) {
                                LogUtil.d("超时任务ID:" + item.callbackId);
                                SuperCallBack callBack = callbacks.remove(item.callbackId);
                                if (callBack != null)
                                if (callBack != null) {
                                    LogUtil.d("超时任务ID:" + item.callbackId + "callBack != null");
                                    callBack.onError(new RequestTimeOutException("request timeout"));
                                }else {
                                    LogUtil.d("超时任务ID:" + item.callbackId + "  callBack == null");
                                }
                            }
                        } catch (InterruptedException e) {
                            e.printStackTrace();