python amqp rpc库

earlgre的Python项目详细描述


厄尔格雷

earlgrey是一个python库,它提供了一种使用rabbitmq在进程之间发布和使用消息的方便方法。它被抽象为rpc模式。

如何使用

# RPC methodsclassTask:@message_queue_taskasyncdefecho(self,value):returnvalue# Client stubclassStub(MessageQueueStub[Task]):TaskType=Task# Server serviceclassService(MessageQueueService[Task]):TaskType=Taskasyncdefrun():route_key='any same string between processes'client=Stub('localhost',route_key)server=Service('localhost',route_key)awaitclient.connect()awaitserver.connect()result=awaitclient.async_task().echo('any value')print(result)# 'any value'loop=asyncio.get_event_loop()loop.run_until_complete(run())

注意

实际上MessageQueueStub不需要完全实现方法的Task类。它只需要方法的签名。

# client side.classTask:@message_queue_taskasyncdefecho(self,value):# Just signature. It is okay. Do not need implemetation.# But server must have its implementationpass

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

推荐PyPI第三方库


热门话题
Cassandra DB的javascript查询结果   java定时器任务调度   java在TLS上实现LDAP   为什么在浏览器中滚动会使java小程序闪烁?   未使用轮询器和serviceactivator提取java pubsub消息   java风暴多线程问题   java计算平均成绩   java将字符串添加到另一个类的数组列表中   文件Java路径如何转换为例如InputStream   java更改JComboBox的字体颜色   java inthttp:具有可轮询请求通道的inboundgateway   使用继承在Java中运行swing Base和扩展windows   java ivysettings。xml:添加本地maven路径   java如何将参数自定义视图传递给activity类   java延迟加载无法在Hibernate中使用一对一映射   当文件以“file:/”开头时,Java无法识别该文件   需要java正则表达式帮助,使用反斜杠   片段中的java GWT参数