golang中往channel写入数据的时候,能不能指定从头部写入还是从尾部写入?

RT,业务场景需要,从channel读出数据后,如果处理失败,需要把数据再丢入channel,再处理。但是因为数据有一定的顺序(不能把失败的数据写到channel的尾部),所以我再把失败的数据丢入channel准备重试的时候,需要丢到channel的头部,然后再读出来进行重试

已邀请:

trume

赞同来自: hdzyxx tupunco

这是个伪需求吧, 为何一定要丢回去,而且要先处理。这不符合channel的队列特性。 把失败的暂存一下,每次loop处理的时候先看下有没有需要重试的,有就处理,没有的再取队列处理不行吗?

sheepbao - https://sheepbao.github.io 爱go,爱编程,领域网络开发,流媒体、分布式、网络加速

赞同来自:

失败就继续重试,不需要插入到队列的头部,真的需要就自己用list现实一个队列,完全可以从头部插入,channel就不要想了

yulibaozi - 但行好事,莫问前程

赞同来自:

我觉得可以放两个channel 一个是正常的,一个值执行错误之后放进的

要回复问题请先登录注册