关于多线程使用RabbitMQ-C的问题

唐麦片 2016-10-17 03:40:37
我有两个线程共用一个连接;线程A单独openchannel,声明exchangeA和queueA;线程B单独openchannel,声明exchangeB和queueB;

通过如下接口获取数据:
	
gMutex.lock();
ret = amqp_consume_message(conn, &envelope, &timeVal, 0);
gMutex.unlock();


由于共用conn,所以加了锁的,现在的问题是,线程B获取到了QueueA队列中的数据了,这不是我想要的。

查了文档说amqp_consume_message会获取any channel中的数据;
为了实现线程A就接收队列A中的数据,线程B就只接收队列B中的数据,是不是我的用法不对,有其他用法吗?
...全文
960 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐麦片 2019-09-10
  • 打赏
  • 举报
回复
引用 2 楼 小小飞鱼入大江 的回复:
楼主,你好,你有没有遇到过在amqp_login返回错误,错误码是-13。用户名和密码都是对的,用java工具是可以获取消息的
很久没搞过了,好像-9和-13都是连接问题,用户密码都正确,需要看看其他参数
  • 打赏
  • 举报
回复
楼主,你好,你有没有遇到过在amqp_login返回错误,错误码是-13。用户名和密码都是对的,用java工具是可以获取消息的
唐麦片 2016-11-09
  • 打赏
  • 举报
回复
amqp_consume_message确实是所有的队列数据都有,需要自己封装按通道进行分拣的工具

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧