批量创建消息队列
来源:互联网 发布:软件的盈利模式 编辑:程序博客网 时间:2024/05/21 17:18
批量创建消息队列
接触RabbitMQ时间并不长,在此边学习边记录
话不多说,这里是个人写的通过将需要创建的队列名称放入容器,然后进行批量创建队列的方法。
首先是初始化:
#include "amqp_tcp_socket.h"#include "amqp.h"#include "amqp_framing.h"using namespace std;bool init(){ bool conected = false; string strServerIP=""; //mq服务器地址 int iPort=8080; //端口 string strHostName = ""; //主机名 string strUser = "": //登录用户名 string strPassWord = ""; //登录密码 string channelNumber = ""; //频道数 amqp_connection_state_t _conn; //连接 try { printf("CMQInstProcessControl 创建服务器连接开始"); do { _conn = amqp_new_connection(); //声明一个新的链接 amqp_socket_t * socket = amqp_tcp_socket_new(_conn); if (!socket) { printf("amqp_tcp_socket_new 获取无效socket"); continue; } int status = amqp_socket_open(socket, strServerIP.c_str(), iPort);//获取socket. if(status != AMQP_STATUS_OK) { printf("amqp_socket_open status异常"); continue; } try { amqp_login(_conn, strHostName.c_str(), 0, 131072, 0, AMQP_SASL_METHOD_PLAIN, strUser.c_str(), strPassWord.c_str()); } catch(...) { printf("amqp_login 异常"); continue; } try { amqp_channel_open(_conn, channelNumber); amqp_get_rpc_reply(_conn); } catch(...) { printf("amqp_channel_open 异常"); continue; } conected = true; } while (!conected); printf(" 连接服务MQ器完成"); } catch(CException &e) { printf("创建服务器连接异常,异常原因为: %s",e.what()); } catch(...) { printf("创建服务器连接异常,其他异常"); } return conected;}
然后进行批量创建队列,并绑定exchange:
void ::queueDeclare(std::vector<std::string>* vecMQName)//将要批量创建的队列名称存入容器中{ try { printf("开始批量创建MQ"); if(vecMQName.size()>0) { for(std::vector<std::string>::iterator itervec = vecMQName.begin(); itervec != vecMQName.end(); ++itervec) { printf("开始创建的消息队列为:%s",(*itervec).c_str()); //声明c amqp_exchange_declare(_conn, channelNumber, amqp_cstring_bytes((*itervec).c_str()), amqp_cstring_bytes("fanout"), 0, true, 0, 0, amqp_empty_table); //声明队列 amqp_queue_declare(_conn, channelNumber, amqp_cstring_bytes((*itervec).c_str()), 0, true, 0, 0, amqp_empty_table); //将队列与exchange绑定起来 amqp_queue_bind(_conn, channelNumber, amqp_cstring_bytes((*itervec).c_str()), amqp_cstring_bytes((*itervec).c_str()), amqp_cstring_bytes((*itervec).c_str()), amqp_empty_table); } } amqp_get_rpc_reply(_conn); amqp_channel_close(_conn, channelNumber, AMQP_REPLY_SUCCESS); amqp_connection_close(_conn, AMQP_REPLY_SUCCESS); amqp_destroy_connection(_conn); printf("批量创建MQ完成"); } catch(CException &e) { printf("批量创建MQ时异常,异常原因为:%s",e.what()); } catch(...) { printf("批量创建MQ时异常,异常未知"); }}
main函数的调用就不必歇了吧,首先初始化,然后将需要创建的队列放置在容器中,并调用queueDeclare方法,即可
本内容为个人原创,仅用于学习交流!!!
阅读全文
0 0
- 批量创建消息队列
- 创建消息队列
- ucosII消息队列创建函数
- WTL 窗口创建消息队列
- 创建自己的消息队列
- redis创建消息推送队列
- Posix 消息队列的创建问题
- 消息队列创建流程及代码示例
- 消息队列创建以及使用示例
- 1--消息队列(报文队列)实践到内核--消息队列的创建
- 1--消息队列(报文队列)实践到内核--消息队列的创建 .
- 1消息队列(报文队列)实践到内核消息队列的创建
- IPC--消息队列 message queue(消息队列的创建,信息的发送和接收)
- /*创建消息队列*/ msgid=msgget(IPC_PRIVATE,0666 | IPC_CREAT);
- linux下Posix消息队列的创建和删除
- Android 子线程创建消息队列更新UI
- 消息队列
- 消息队列
- python绘图实践-泰坦尼克号绘图
- 设计模式系列之「状态模式」
- Http和Https的简单理解
- Java单例模式
- LeetCode Algorithm #9 Palindrome Number
- 批量创建消息队列
- uploadify
- cas单点登录遇到 supplied credentials: [admin+password] 问题原因以及解决办法
- zTree读取公司部门与子部门信息数据加载出问题
- BZOJ 3727 PA2014 树DP 解题报告
- JAVA中堆和栈的区别
- 牛顿下降法和梯度下降法(最速下降法)的速度的比较
- Wpf之Excel导入导出数据
- 在Eclipse里配置tomcat图片路径