c# – RabbitMQ仅侦听队列中的第一条消息
发布时间:2020-12-15 08:02:53 所属栏目:百科 来源:网络整理
导读:我的Rabbit队列存在问题,目前只对队列中的第一条消息作出反应,之后被忽略的任何其他消息都被忽略. 我首先实例化连接并在IQueueConnectionProvider中声明队列: var connectionFactory = new ConnectionFactory() { HostName = hostName };var connection = _
我的Rabbit队列存在问题,目前只对队列中的第一条消息作出反应,之后被忽略的任何其他消息都被忽略.
我首先实例化连接并在IQueueConnectionProvider中声明队列: var connectionFactory = new ConnectionFactory() { HostName = hostName }; var connection = _connectionFactory.CreateConnection(); var channel = connection.CreateModel(); 然后,IQueueConnectionProvider在我的IQueueListener中用作只有一个方法的依赖项: public void ListenToQueue(string queue) { var channel = _queueConnectionProvider.GetQueue(); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model,ea) => { string path = @"d:debug.log.txt"; File.AppendAllLines(path,new List<string>() {"MESSAGE RECEIVED",Environment.NewLine }); var body = ea.Body; var message = Encoding.UTF8.GetString(body); channel.BasicAck(ea.DeliveryTag,false); }; channel.BasicConsume(queue,true,consumer); } 我的日志文件最终只有一行“MESSAGE RECEIVED”,但我可以在Rabbit ui界面看到我的其他服务正在将消息推送到该队列就好了. 这里有什么我想念的吗? 解决方法
这是一个愚蠢的错误……又一次.
channel.BasicConsume(queue,false,consumer); 这就是我所需要的.我想手动确认我的消息,因此noAck需要是假的; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- c# – Visual Studio 2013 ADO.net实体模型没有O
- 使用 Open XML SDK 2.0 从 Word 2010 文档中提取
- Weblogic启动时报org.xml.sax.SAXParseException
- react-native – 如何在Android手机上运行React
- c# – 如何减少Watin中的TypeText延迟?
- uitableview – 当调用layoutIfNeeded()时,AutoL
- cocos2dx 我所不知的技巧
- .NET的正则表达式是否完整?
- Ajax相同url的请求_IE缓存问…
- CocoStudio使用笔记2:cocos2dx3.9使用CocoStudi
热点阅读