sns+sqs通信变得简单

razemax的Python项目详细描述


剃须刀

Build Status

使用aws sns+sqs进行python服务的异步通信

文档

内存事件管理器

显示代码

fromrazemax.event_managerimportEventManagerclassNorthKoreaThreatCreatedEvent:def__init__(self,id,target):self.id=idself.target=targetdeftrump_subscriber(event:NorthKoreaThreatCreatedEvent):print(f"North korea will attack us or {event.target}!")EventManager.subscribe(trump_subscriber,NorthKoreaThreatCreatedEvent)EventManager.trigger(NorthKoreaThreatCreatedEvent(0,"Mexico"))

结果:

North korea will attack us or Mexico!

来自sqs

的触发器订户

先决条件

在运行消费者之前,必须订阅sns主题的sqs队列

代码

fromrazemax.consumersimportMessageConsumerfromrazemax.driversimportSQSDriverfromrazemax.event_managerimportEventManagerfromrazemax.publisherimportSNSMessagePublisherdefkp_message_to_event(message):# Highly recommended to use Marshmallow to validatereturnNorthKoreaThreatCreatedEvent(message.body['id'],message.body['target_name'])mapper={'KPThreatCreated':kp_message_to_event}aws_settings={'region_name':"",'aws_access_key_id':"",'aws_secret_access_key':"",'endpoint_url':""}queue_driver=SQSDriver.build("korea-threats-queue",aws_settings)MessageConsumer(mapper,EventManager,queue_driver).process_message()publisher=SNSMessagePublisher.build(aws_settings,'korea-topic')publisher.publish('KPThreatCreated',{'id':21,'target_name':'Portugal'})

结果:

North korea will attack us or Portugal!

安装(TOdo)

pip install git@github.com/transporter

运行测试

要运行端到端测试,请执行:

make unit-tests
make integration-tests

作者

许可证

这个项目是在麻省理工学院的许可下授权的-详细信息请参见LICENSE.md文件

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

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归