分区工作者持久化该事件,并将其分派给EventHandler 。事件处理程序是一系列可独立部署的函数,可以做任何你想做的事情 。
如:
handlers = [PostInsightsGeneratorEventHandler,ThreadActivityManagerEventHandler,SpamDetectionEventHandler,#...,#....,ImageResizerEventHandler,] 而我们的处理器可以以任何你喜欢的方式处理它们 。在这里,我们按顺序处理它们,但它也可以并行派发:
class EventHandler:@staticmethodasync def process(event_dao: SystemEventDAO, db_session: Session = None):log_info(msg=f'Event: {event_dao.event_name} arrived')for event_handler in handlers:await event_handler.process(event_dao=event_dao, db_session=db_session)return 处理程序本身是一个相当简单的类,它检查相关的事件 。
class PostInsightsGeneratorEventHandler(event_dao: SystemEventDAO, db_session: Session):if not event_dao.event_name == "PostCreatedEvent" :returnlog_info(msg=f"PostCreatedEventHandler called with {event_dao.event_id}")# Do whatever you need to here 推荐阅读
- ajax请求的五个步骤代码!ajax如何使用?
- 餐饮收银员的基本电脑常识--超市收银员的具体步骤,电脑该怎样使用?
- 数字乡村综合服务平台可实现?乡村旅游数字化发展
- 使用 python 绘制万花尺
- 看似简单但使用率非常高的7个Excel技巧,都在此文,速度围观!
- 蜜罐技术是一种什么防御技术?实现原理是什么?
- CentOS 7 Freeswitch1.10.7 对接百度MrcpServer实现 TTS和ASR
- 使用 Apache Kafka 构建您自己的社交媒体分析
- 京东科技Redis跨数据中心双向同步优化实践
- 饵料|用蚯蚓钓鱼的技巧和弊端,只有使用得当,才能发挥蚯蚓的作用
