RabbitMQ 声明Queue时的参数们的Power

参数们的Power

在声明队列的时候会有很多的参数

public static QueueDeclareOk QueueDeclare(this IModel model, string queue = "", bool durable = false, bool exclusive = true, bool autoDelete = true, IDictionary<string, object> arguments = null);

queue:这没什么好说的,队列名

durable:是否持久化,那么问题来了,这是什么意思?持久化,指的是队列持久化到数据库中。在之前的博文中也说过,如果RabbitMQ服务挂了怎么办,队列丢失了自然是不希望发生的。持久化设置为true的话,即使服务崩溃也不会丢失队列

exclusive:是否排外,what? 这又是什么呢。设置了排外为true的队列只可以在本次的连接中被访问,也就是说在当前连接创建多少个channel访问都没有关系,但是如果是一个新的连接来访问,对不起,不可以,下面是我尝试访问了一个排外的queue报的错。还有一个需要说一下的是,排外的queue在当前连接被断开的时候会自动消失(清除)无论是否设置了持久化

autoDelete:这个就很简单了,是否自动删除。也就是说queue会清理自己。但是是在最后一个connection断开的时候

arguments:这个值得拿出来单讲一次,暂时不说

不同方式的生明queue

在queuedeclare的时候会发现还有很多这样的方法,下面图中就可以看到,不要以为其它两个都是吃瓜群众,它们也是有着其特殊功效的。

QueueDeclareNoWait:相当于一个async版的声明队列,可以看到是没有返回的。调完方法就结束。也不等队列创建结果

QueueDeclarePassive:消极的声明创建?这是什么鬼,事实上它没有去声明队列,所谓消极,去看看有没有名为xxx的queue,如果有我就把名字什么的信息告诉你,没有就直接报错也不管。那么问题来了,这个方法如此鸡肋,我要它有何用? 。。。其实你可以用来确认queue是否存在嘛

end。。。祝广大程序员圣诞嗨皮,,博主平安夜撸代码到圣诞节,哈哈,也是一种乐趣。

时间: 2024-08-03 22:53:09

RabbitMQ 声明Queue时的参数们的Power的相关文章

c 数组做为形参时 该参数退化为指针

当数组做为函数的形参的时候,该参数退化为指针,并且是无法直接求得数组的大小. 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址. void func(int array[10]) void func(int array[]) void func(int *array) 所以以上三种函数声明完全等同. 实际情况是,数组做参数,完全无法按值传递.这是由C/C++函数的实现机制决定的. 通常计算数组大小的方式如下: int len = sizeof(arr)/sizeof(type)

[整理]函数的声明中的数组参数

在函数的声明的数组参数中,并为指明数组的长度.因为在C中,允许单个函数操纵任意长度的一维数组.这个特性不利的一面是函数没法知道该数组的长度.如果确实需要知道数组的长度,必须作为一个单独的参数传递给函数. 当数组名作为实参时,传递给函数的实际上是一个指向数组起始位置的指针. /*开发环境:vs2010 window xp sp3*/ #include <stdio.h> int main(void) { void array_len(int v[]); int v[]= { 70, 30, 40

安装RabbitMQ编译erlang时,checking for c compiler default output file name... configure:error:C compiler cannot create executables See &#39;config.log&#39; for more details.

checking for c compiler default output file name... configure:error:C compiler cannot create executables See 'config.log' for more details. 打开config.log查看明细: 网上找了下,说是没有安装cpp,libc5-devel,而在redhat中指的是glibc,glibc-devel,cpp,查看是否安装,: 果然没有,然后安装: 再次编译,发现换了一

C# - 通过构造函数的方法实现WinFrm程序开启时接收参数

通过构造函数的方法实现WinFrm程序开启时接收参数 在项目开发过程中,有时候我们需要获取程序开启时的参数,进而实现进一步的自动处理. 比如,我们通过运行(Win+R)执行如下命令: C:\tmp\1.exe ps1 ps2 ps3... 我们希望获取程序1.exe的入口参数,即ps1 ps2 ps3 ...,进而根据不同的参数,对相关业务逻辑进行不同的自动处理,那么我们如何实现呢? 两步实现 接下来我们将通过如下两步来实现: A.增加主窗体构造函数 public MainFrm() { Ini

执行 CMD 时,参数加引号常见问题

在调用 CMD 时,如脚本中用 WScript.Shell 调用. 如果参数中有包含空格的长路径名时,必须要加引号才能正确被识别. 是的,大家都知道要加引号,但怎么加却容易被误解.这个问题,不时地会遇上,上次弄清楚了,但隔一段时间,还是忘了,同样的问题又要重新摸索,非常痛苦. 如: Set objShell = WScript.CreateObject("WScript.Shell") cmd = "cmd.exe /C ""C:\Program File

javascript声明对象时 带var和不带var的区别

Javascript声明变量时 var aaa = 111; 和 aaa = 111; 两种方式一样吗? 废话少说,先上代码. var aaa = 11; function test4(){ var aaa = 22; } test4(); console.log(aaa); 结果是什么呢? 11 这个好理解, 函数内的var aaa声明是内部变量,这时结果是第一个aaa的值. 变动一下如下: var abc = 11; function test4(){ abc = 22; } test4()

嵌入式Linux启动时网络参数配置

明白了嵌入式Linux启动时网络参数配置的流程,就会对网络这一部分了然于胸,以后出现网络不通的情况,就有了解决问题的思路. 1.网络参数配置的入口: /etc/init.d/rcS,如下两行 # 配置换回lo地址 /sbin/ifconfig lo 127.0.0.1 # 配置以太网eth0地址 /etc/init.d/ifconfig-eth0 2.进入ifconfig-eth0文件: #!/bin/sh echo -n Try to bring eth0 interface up......

Bootstarp学习(二十五)模态弹出框--JavaScript触发时的参数设置

使用JavaScript触发模态弹出窗时,Bootstrap框架提供了一些设置,主要包括属性设置.参数设置和事件设置. 属性设置 模态弹出窗默认支持的自定义属性主要有: 比如你不想让用户按ESC键关闭模态弹出窗,你就可以这样做: $(function(){ $(".btn").click(function(){ $("#mymodal").modal({ keyboard:false }); }); }); 参数设置和事件设置进行介绍. 参数设置: 在Bootstr

jquery引用方法时传递参数

经常到网上去下载大牛们写的js插件.每次只需将js引用并设置下变量就行了,但一直没搞明白原理(主要是大牛们的代码太简练了-,-). 这次弄清了如何传递.设置多个(很多个)参数. 如 方法为function lunbo(){}; 在调用.设置的时候写: lunbo({ speed:200, wrapper:'#id', ease:'easing' }) 则,在方法内获取的时候: function lunbo(options){ var set=$.extend({},options); var _