这个报错的产生原因是:消息队列的数据太多,导致了数据处理不过来,而消息的发送端仍然往消息队列中发送消息,于是就会返回此错误;
ulimit -n什么的都是查看或者修改这些上限什么的,但是在实际运行过程中,修改这个值,只能让程序拖延而已,并不能真正的解决问题;
ipcs -a可以查看是否是消息队列异常,当然这个需要你能登陆shell的情况下;
然后可以对应ipcs -l查看进程号,再对应ps查看那个进程导致的;
解决这个问题需要从消息队列的获取端入手,如果消息队列被塞满,那么肯定是获取端获取的花费时间太久。查看获取端什么地方有,等待,延时,卡顿的地方,修改这些地方就可以解决问题;可以将接收端修改为,如果有消息那么一直获取的状态,就可以彻底解决问题;