对每个A消息起个协程就行
每个携程里,当收到A对应的BCDE并处理以后就结束,否则到30秒也结束但是报错
至于aaab这种情况,我觉得你这个协议本身就有点乱,应该怎么处理你自己好好规划一下
【 在 rogue 的大作中提到: 】
: 标 题: 求个思路 多谢了
: 发信站: 水木社区 (Sun Feb 26 11:24:54 2023), 站内
:
: 求个思路或逻辑
: 目前做一个udp协议的超时监控,比如发起A,响应是B、C、D、E
: 服务端接收到A后30秒内收到BCDE就OK,超过30秒则告警
: 服务端接收到的数据还没有顺序发送的是ab可能收到ba
: 也有可能是aaab这样的也要考虑进去
:
: 我目前做的思路是收到发起消息时放到redis中,
: 收到响应消息时删除key
: 程序监听 redis expired事件, 当收到事件消息时,说明肯定是超时了
:
: 因为收到的包是无序的,所以人为的把响应消息给sleep了,阻断了,这样强制他有序了
:
: 虽然这样免强还能用,但是有误报,比如可能因网络问题收到的是AAAB,连续发了几个请求,但在30秒内还是有响应,不应该告警
: 我现在这种情况就会告警
: 而且人为sleep这种方式我觉得很low
:
: 但又想不出其它的,还忘各位高手指点
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 221.219.191.*]
--
修改:Knightmare FROM 124.126.150.*
FROM 124.126.150.*