使用redis和asyncio的基于事件的分布式计算
redis-events的Python项目详细描述
redis事件
使用redis和asyncio的基于事件的分布式计算
用法
创建将响应事件的工作进程:
# worker.pyfromredis_eventsimportClient,Event# Point client at Redis serverclient=Client(host="mywebsite.com",port=6379,password="PASSWORD123")@client.event("echo")# name the event whatever you wantasyncdefecho_example(event:Event):reply_event=Event("echo",# this doesn't actually matter because it is a replyevent.data# echo the data that was in the first event)awaitclient.send_reply(event,reply_event)client.run()
创建将推送事件的脚本
# send_events.pyfromredis_eventsimportClientimportasyncio# obviously, must point to the same Redis server as the workerclient=Client(host="mywebsite.com",port=6379,password="PASSWORD123")# Everything is asyncasyncdefsend_events():my_event=Event("echo",{"test":1234})awaitclient.send(my_event)reply=awaitclient.wait_for_reply(to=my_event,timeout=60)# wait for a reply for up to 1 minuteprint("GOT REPLY")asyncio.get_event_loop().run_until_complete(send_events())
安装
pip install redis-events