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