RabbitMQ通信的抽象接口
项目描述
RabbitMQ无烦恼。
b-rabbit 是一个RabbitMq客户端库,旨在使与RabbitMQ接口更简单。它在大型项目中尤其有用,在这些项目中必须编写大量的样板代码。
我是在参与一个大型微服务项目时开始这个项目的,该项目由一个大型团队开发。之后,我决定开源这个项目。
免费软件:MIT许可证
特性
实现了所有RabbitMQ消息模式。
提供了一个易于使用的高级API(请查看示例)
线程安全
何时应该使用它
如果您在其他非线程安全库(比如我)遇到问题
如果您想通过使用高级API快速开发
如果您不想编写很多代码并节省很多时间
如果您想使用多线程
快速使用
导入库
from b_rabbit import BRabbit
创建一个提供全局RabbitMQ连接的父实例
rabbit = BRabbit(host='localhost', port=5672)
现在,只需一行代码即可发布消息
publisher = rabbit.EventPublisher(b_rabbit=rabbit,
publisher_name='pub').publish(routing_key='testing.test',
payload='Hello from publisher')
或者,如果您想订阅并监听某个特定主题
def callback(msg):
# do something with the received msg from the publisher
print(f"msg received: {msg}")
# subscribe and run a listener in a thread
subscriber = rabbit.EventSubscriber(
b_rabbit=rabbit,
routing_key='testing.test',
publisher_name='pub',
event_listener=callback).subscribe_on_thread()
使用RPC的高级使用方法
任务请求者
from b_rabbit import BRabbit
def taskResponseListener(body):
print('Task Response received')
print(str(body))
rabbit = BRabbit(host='localhost', port=5672)
taskRequesterSynchron = rabbit.TaskRequesterSynchron(b_rabbit=rabbit,
executor_name='test',
routing_key='testing.test',
response_listener=taskResponseListener)
taskRequesterSynchron.request_task('msg from requester')
rabbit.close_connection()
任务响应者(服务器)
from b_rabbit import BRabbit
import time
rabbit = BRabbit(host='localhost', port=5672)
def taskListener(server, body):
print('Task Request received')
print(str(body))
time.sleep(5)
server.send_return(payload="return this value to requester")
taskExecuter = rabbit.TaskExecutor(b_rabbit=rabbit,
executor_name='test',
routing_key='testing.test',
task_listener=taskListener).run_task_on_thread()
进一步
查看示例文件夹以获取更多信息。b_rabbit还实现了远程过程调用(RPC)模式
项目详情
下载文件
下载适用于您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
b_rabbit-1.2.5.tar.gz (17.2 kB 查看散列)
构建分布
b_rabbit-1.2.5-py2.py3-none-any.whl (9.3 kB 查看散列)
关闭
b_rabbit-1.2.5.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | ff0d0cf2c667219c5d4ccd3aee30549c51ca9c45667a0479c2631eb00a4a18b4 |
|
MD5 | aa98ea4a3170f3539fbcb1fb01c2977a |
|
BLAKE2b-256 | 0eba39057e5e6b3de80dfd4edd492ab367d1929ca967e7bde98571b0e57967a2 |
关闭
b_rabbit-1.2.5-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 55583f18eb5c3657614a96410ac37466f3456f6a2ff8ca0e6de57c328b3aab6d |
|
MD5 | decae275c7d1b6fe402da1f6d68d2967 |
|
BLAKE2b-256 | 35488bc3c5f30d8f120a83b365c9914a8741e1f0db267e69bfd746b228e3ebb9 |