码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ第五课 使用技巧

时间:2018-07-19 17:25:54      阅读:589      评论:0      收藏:0      [点我收藏+]

标签:设置   消费者   mes   没有   进入   timeout   rabbit   res   sock   

1) C++ 获取消息数据
amqp_rpc_reply_t ret;
timeval tvTimeout;
tvTimeout.tv_sec = 1;
tvTimeout.tv_usec = 0;
ret = amqp_consume_message(conn, &envelope, &valTimeOut, 0);

if (AMQP_RESPONSE_NORMAL == ret.reply_type)
{
   std::string strAMQPMsg((char*)envelope.message.body.bytes, envelope.message.body.len);
}

误区: std::string strAMQPMsg = char*)envelope.message.body.bytes 存在多余的数据
误区: 没有设置接收超时,而是直接传递NULL,导致函数进入死循环


2)发送消息的时候,返回错误信息:AMQP_STATUS_SOCKET_ERROR
AMQP_STATUS_SOCKET_ERROR = -0x0009,               /**< A socket error occurred */
需要跟服务器Broker重新建立连接


3)确认数据是否已经发送成功

      关于消费者就不用代码来获取消息了,直接在RabbitMQ Management点击某个队列的名字,然后Get Message(s) 即可获取消息内容


RabbitMQ第五课 使用技巧

标签:设置   消费者   mes   没有   进入   timeout   rabbit   res   sock   

原文地址:http://blog.51cto.com/fengyuzaitu/2147265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!