RT,业务场景需要,从channel读出数据后,如果处理失败,需要把数据再丢入channel,再处理。但是因为数据有一定的顺序(不能把失败的数据写到channel的尾部),所以我再把失败的数据丢入channel准备重试的时候,需要丢到channel的头部,然后再读出来进行重试
这个,貌似仅仅chan实现不了,可以用队列。但是如果 仅仅失败 立即重试没必要还放进chan中,从chan中取出了,创建个goroutine处理好了。如果是稍后重试,放进chan中(题住的尾部) 恰好合适。
#8
更多评论
可是 你确定重试就会成功了?要是一直失败了 是不是就阻塞了? 阻塞了 内存是不是会暴涨? 。cpu会不会都浪费在重试上了,导致正常的请求没有时间处理?。。。
所以你这个前提就有问题?
#2