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