exchange_declare($exchange, $type, $passive = false, $durable = false, $auto_delete = true, $internal = false, $nowait = false, $arguments = array(), $ticket = null)
试探性申请一个交换器,若该交换器不存在,则创建;若存在,则跳过
序号 | 参数名 | 默认值 | 解释 |
1 | $exchange | 交换器名称。 | |
2 | $type | 交换器类型,常见的如fanout、direct、topic、headers四种。 | |
3 | $passive | false | 只判断不创建(一般用于判断该交换机是否存在),如果你希望查询交换机是否存在.而又不想在查询时创建这个交换机.设置此为true即可如果交换机不存在,则会抛出一个错误的异常.如果存在则返回NULL。 |
4 | $durable | false | 设置是否持久化。设置true表示持久化,反之非持久化。持久化可以将交换器存盘,在服务器重启的时候不会丢失相关信息。 |
5 | $auto_delete | true | 设置是否自动删除。设置true表示自动删除。自动删除的前提:至少有一个队列或交换器与这个交换器绑定,之后所有与这个交换器绑定的队列或交换器都与此解绑。不要错误的理解:“当与此交换器连接的客户端都断开时,RabbitMQ会自动删除本交换器”。 |
6 | $internal | false | 设置是否是内置的。设置true表示是内置的交换器,客户端程序无法直接发送消息到这个交换器中,只能通过交换器路由到交换器这个方式。 |
7 | $nowait | false | 如果为true则表示不等待服务器回执信息.函数将返回NULL,可以提高访问速度。 |
8 | $arguments | array() | 其他一些结构化参数。 |
9 | $ticket | null |
queue_declare($queue = '', $passive = false, $durable = false, $exclusive = false, $auto_delete = true, $nowait = false, $arguments = array(), $ticket = null)
试探性申请一个交换器,若该交换器不存在,则创建;若存在,则跳过。
序号 | 参数名 | 默认值 | 解释 |
1 | $queue | 队列名称。 | |
2 | $passive | false | 只判断不创建(一般用于判断该队列是否存在),如果你希望查询队列是否存在,而又不想在查询时创建这个队列,设置此为true即可;如果队列不存在,则会抛出一个错误的异常,如果存在则返回NULL。 |
3 | $durable | false | 设置是否持久化。设置true表示持久化,反之非持久化。持久化的队列可以存盘,在服务器重启的时候不会丢失相关信息。 |
4 | $exclusive | false | 设置是否排他。设置true时,表示为排他队列,该队列仅对首次首次声明它的连接可见,并在连接断开时自动删除。注意三点:排他队列是基于连接(Connection)可见的,同一个连接的不同信道(Channel)是可以同时访问同一连接创建的排他队列;“首次”是指如果同一个连接已经声明了一个排他队列,其他连接时不允许建立同名排他队列的,这个与普通队列不同;即使该队列是持久化的,一旦连接关闭或客户端退出,该排他队列都会自动删除,这种队列适合一个客户端同时发送和读取消息的场景。 |
5 | $auto_delete | true | 设置是否自动删除。设置true表示队列自动删除。自动删除的前提:至少一个消费者连接到这个队列,之后所有与这个队列连接的消费者都断开时,才会自动删除。不要错误的理解:“当连接到此队列的所有客户端断开时,这个队列自动删除”,因为生产者客户端创建这个队列,或没有消费者客户端与这个队列连接时,都不会自动删除这个队列。 |
6 | $nowait | false | 如果为true则表示不等待服务器回执信息.函数将返回NULL,可以提高访问速度。 |
7 | $arguments | array() | 其他一些结构化参数。$arguments = new AMQPTable([ 'x-message-ttl' => 10000, // 延迟时间 (毫秒)创建queue时设置该参数可指定消息在该queue中待多久,可根据x-dead-letter-routing-key和x-dead-letter-exchange生成可延迟的死信队列。 'x-expires' => 26000, // 队列存活时间 如果一个队列开始没有设置存活时间,后面又设置是无效的。 'x-dead-letter-exchange' => 'exchange_direct_ttl3', // 延迟结束后指向交换机(死信收容交换机) 'x-dead-letter-queue' => 'queue_ttl3', // 延迟结束后指向队列(死信收容队列), //'x-dead-letter-routing-key' => 'queue_ttl3', // 设置routing-key //'x-max-priority'=>'10' //声明优先级队列.表示队列应该支持的最大优先级。建议使用1到10之间.该参数会造成额外的CPU消耗。 ] ); |
8 | $ticket | null |
queue_bind($queue, $exchange, $routing_key = '', $nowait = false, $arguments = array(), $ticket = null)。
将队列和交换器绑定
序号 | 参数名 | 默认值 | 解释 |
1 | $queue | 队列名称。 | |
2 | $exchange | 交换器名称。 | |
3 | $routing_key | 无 | 用来绑定队列和交换器的路由键 |
4 | $nowait | false | 如果为true则表示不等待服务器回执信息.函数将返回NULL,可以提高访问速度。 |
5 | $arguments | array() | 定义绑定的一些参数 |
6 | $ticket | null |
exchange_bind($destination, $source, $routing_key = '', $nowait = false, $arguments = array(), $ticket = null)。
交换器与交换器绑定。
序号 | 参数名 | 默认值 | 解释 |
1 | $destination | 目标交换器(某种程度上可以看成一个队列)。 | |
2 | $source | 源交换器(消息从source交换器到destination交换器)。 | |
3 | $routing_key | 无 | 用来绑定队列和交换器的路由键 |
4 | $nowait | false | 如果为true则表示不等待服务器回执信息.函数将返回NULL,可以提高访问速度。 |
5 | $arguments | array() | 定义绑定的一些参数 |
6 | $ticket | null |
basic_publish($msg, $exchange = '', $routing_key = '', $mandatory = false, $immediate = false, $ticket = null)
生产消息
序号 | 参数名 | 默认值 | 解释 |
1 | $msg | 生产的消息 | |
2 | $exchange | 交换器的名称,指明消息需要发送到哪个交换器中。如果设置为空字符串,则消息会被发送到RabbitMQ默认的交换器中。 | |
3 | $routing_key | 路由键。交换器根据路由键将消息储存到相应的队列之中。 | |
4 | $mandatory | false | 设置为true时,交换器无法根据自身的类型和路由键找到一个符合条件额队列,那么RabbitMQ会调用Basic.Return命令将消息返回给生产者。当设置为false的时,出现上述问题,则消息直接被丢弃。 |
5 | $immediate | fasle | RabbitMQ3.0版本开始去掉对immediate参数的支持。 |
6 | $ticket | null |
basic_consume($queue = '', $consumer_tag = '', $no_local = false, $no_ack = false, $exclusive = false, $nowait = false, $callback = null, $ticket = null, $arguments = array())
消费消息
序号 | 参数名 | 默认值 | 解释 |
1 | $queue | 队列名称。 | |
2 | $consumer_tag | 消费者标签。用来区分多个消费者。 | |
3 | $no_local | false | AMQP的标准,但rabbitMQ并没有做实现。 |
4 | $no_ack | false | 收到消息后,是否不需要回复确认即被认为被消费;设置为true,表示自动应答;设置为false表示手动应答。 |
5 | $exclusive | false | 设置是否排他。排他消费者,即这个队列只能由一个消费者消费.适用于任务不允许进行并发处理的情况。 |
6 | $nowait | false | 如果为true则表示不等待服务器回执信息.函数将返回NULL,但若排他开启的话,则必须需要等待结果的,如果两个一起开就会报错。 |
7 | $callback | null | callback函数 |
8 | $arguments | array() | 一些额外配置 |
评论 (0)