activemq消息一直pending
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activemq消息一直pending相关的知识,希望对你有一定的参考价值。
从web控制台看,消息一直在pending状态。消费者的receive()处于阻塞状态。
如果重启activemq服务,部分pending的消息就会被发出去;如果不重启 则一直pending。
activemq版本:5.3.0
消费者用了selector
网络正常(端口开放、ping速正常、scp传输数据正常)
有人说是selector问题。但是这种情况只发生在部分消费者上,其他的(跟该消费者一样)则没有该问题
求解~~~~
在线等~~~
不懂的就别回答了~~ 浪费时间~ 请自重
其次,你有没有试过重启MQ之后再重启下消费者的应用?有时候MQ和消费者的连接丢失之后,重启MQ并不能重新建立连接。
最后,仔细检查下代码,是不是消费者逻辑有误,自己锁住了没有释放资源?
Good luck……追问
1、pending的消息被发送了,因为消费者收到了
2、重启MQ时,消费者后台日志(大概意思):EOFException,将在1000S之后reconnect,MQ重启成功后,消费者后台日志:连接tcp:ip...成功。说明重启MQ之后 消费者是会自动重连的。
3、如果资源被锁,为何在重启MQ之后资源被释放(消费者和MQ不在同一台服务器)?
php 监听activemq 消息队列,需要把监听程序的php文件一直打开么?
监听(消费者)文件一直打开会不会有问题,能不能将监听文件添加到系统进程里呢?
需要起一个常驻进程来运行这个PHP文件,注意将最大运行时间设置为无限(set_time_limit(0))及日志写入,方便出现问题排查。理论上来说,PHP不适合做常驻进程。 参考技术A window下你可以把写个bat文件执行你的php文件。然后加入系统计划或者系统服务。linux下写个定时任务就行了,以上是关于activemq消息一直pending的主要内容,如果未能解决你的问题,请参考以下文章
ActiveMQ(15):Message Dispatch的消息游标与异步发送