zoukankan      html  css  js  c++  java
  • socket消息超时重发的设想

    我们经常遇到的一个问题就是:发送一条消息,若在T秒内没有收到回应,我们将需要对消息进行重发,若重发N次后再失败,则不再重发。
    对于这个问题,我们可以给每条消息一个ID,为YYYYMMDDHHmmssSSS(当前的时间,精确到毫秒),再定义N-1个HashMap,key为消息ID,value为消息内容。
    首先把这条消息立即发送,并等待回应,同时把这条消息放入上面定义的N-1个HashMap中,定义一个线程专门扫描这N-1个HashMap, 第一个HashMap, ParseLong(ID)+1000*T <= currentTime,则发送此消息,同时把它从HashMap中移除, 第二个HashMap, ParseLong(ID)+1000*2T <= currentTime,则发送此消息,同时把它从HashMap中移除,…… 第N-1个HashMap, ParseLong(ID)+1000*(N-1)*T <= currentTime,则发送此消息,同时把它从HashMap中移除。
    若能收到回应,则把消息从这N-1个HashMap中移除。

  • 相关阅读:
    antd Icon
    antd button
    tree 向上查找(更新删除后页面的数据)
    tree 向下查找 (删除整条tree)
    tree结构统一修改属性名(递归)
    json转换为tree对象(递归)
    python测试题
    c函数练习
    飞机一只
    python1119作业1
  • 原文地址:https://www.cnblogs.com/tc310/p/13393248.html
Copyright © 2011-2022 走看看