zoukankan      html  css  js  c++  java
  • RabbitMQ各方法详解

    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() 一些额外配置
    ————————————————

    原文链接:https://blog.csdn.net/qq_34272964/article/details/103937896

  • 相关阅读:
    Ubuntu学习
    Django之 Views组件
    Django之 admin组件
    Django之 Models组件
    Django之 url组件
    递归
    python 之 编码
    Python 之 Restful API设计规范
    Django之实现登录随机验证码
    git &github 快速入门
  • 原文地址:https://www.cnblogs.com/andydao/p/14783631.html
Copyright © 2011-2022 走看看