用于AMQP中间件应用程序的简单使用的Python接口。

PyAMQ的Python项目详细描述


Pyamqp

用于AMQP中间件应用程序的简单使用的Python接口。

这个接口是为了简化amqp软件的使用过程。

目前支持的应用程序:

  • rabbitmq:这是一个流行的开源消息代理,它实现了 用erlang编程语言编写的高级消息队列协议(amqp)

如何获得它

pip install pyamqp

依赖关系

Pika:0.13或更高

pytest:4.0.2或更高版本

用法示例

rabbitmq-接收器

from pyamqp.rabbit.receiver import Receiver

# Initializing and creating the connection with the Rabbit server
receiver_instance = Receiver(host='18.222.222.222',
                             port=5672,
                             user='guest',
                             password='1245554221')

# Declares the queue with the specified parameters, 
# binds it to an exchange using the routing_keys list.
receiver_instance.connect_queue(queue_name='test',
                                exchange='test_exchange',
                                routing_keys=['A', 'B'],
                                is_durable=True,
                                auto_delete=False)
# callback function
# Not necesary if inheritance is used
def get_message(message, details):
    some_value = message.get('some_key', None)
    print(some_value)

receiver_instance.consume(callback_function=get_message,
                          no_ack=True,
                          consumer_tag='AAAAKKK_2232')

兔子调度器

from pyamqp.rabbit.dispatcher import Dispatcher

dispatcher_instance = Dispatcher(host='18.222.222.222',
                                 port=5672,
                                 user='guest',
                                 password='1245554221')

# Declaring exchanges that are going to be used for sending messages
# exchanges parameter can be an string or a list of strings                               
dispatcher_instance.connect_exchanges(exchanges=['test_exch', 'test_exch_2],
                                      exchange_type='topic',
                                      auto_delete=True)


# There can be only two types of passed messages, string or dicts.
message_1 = 'Hello'
message_2 = {'Ciao': 'Hola'} 

dispatcher.send_message(message_1, 'THIS.IS.A.KEY', 'test_exch')
dispatcher.send_message(message_2, 'KEY.SOMETHING', 'test_exch_2')

当前限制

  • 只支持blockingconnection适配器,因为这是生产中使用的主适配器。
  • 线程接收器类不是线程安全的,将使用queue()的内部实例添加以解决该问题。
  • 此包不支持在同一子类中继承接收器和分派器。

许可证

GNU GPLv3

此强版权许可证的权限以在同一许可证下提供许可作品和修改(包括使用许可作品的较大作品)的完整源代码为条件。必须保留版权和许可声明。贡献者提供专利权的明确授予。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
部署在kubernetes上时,微服务中服务间通信中的java连接超时问题   java Nway合并对2G字符串文件进行排序   java如何使用FlexJson按特定顺序序列化对象和属性   如何在java布尔方法中导入文本文件   swing需要帮助在我的Java GUI中实现用户输入的侦听器   java如何读取枚举中Spring Messagesource的内容?   每个Ajaxcall上(之前和之后)的java Javascript   java compareTo(Comparable)方法对于Comparable类型未定义   带换行符的java Bash输入重定向   使用Spring授权标记检查用户是否登录时发生java错误?   使用大尺寸(100000)数组执行快速排序时出现Java StackOverflower错误   java forEach迭代器标记   Java ClassNotFound异常,Maven依赖项作为JAR   java将HQL转换为SQL查询   java正在将片段列表发送到FragmentPagerAdapter   java onActivityResult应该调用super。onActivityResult   java如果我导入一个超类,我也需要导入它的子类吗?   java是否可以通过openid协议对aadhar进行身份验证