Python 事件分组的设计模式

Python 事件分组的设计模式,python,events,model,message,Python,Events,Model,Message,我希望使用事件驱动(或消息驱动)体系结构实现现有模型。 某些实体需要触发事件来更新其他实体 对于B类实体,依赖于A类实体。 因此,当A实体发生更改时,我将触发一个事件,让一些B实体进行更新 (多个A实体与一个B实体“链接”) 在某些情况下,我需要更新所有A实体。这将生成事件。 但这些事件中的大多数将是“重做的”,因为我将更新每个B实体 好几次我想“分组”或“延迟”这些事件 对于我的用例,有用的设计模式是什么? 是否需要对挂起的事件进行分组? 我需要推迟活动吗? 我需要事件失效吗?基于时间戳 我正

我希望使用事件驱动(或消息驱动)体系结构实现现有模型。 某些实体需要触发事件来更新其他实体

对于B类实体,依赖于A类实体。 因此,当A实体发生更改时,我将触发一个事件,让一些B实体进行更新 (多个A实体与一个B实体“链接”)

在某些情况下,我需要更新所有A实体。这将生成事件。 但这些事件中的大多数将是“重做的”,因为我将更新每个B实体 好几次我想“分组”或“延迟”这些事件

对于我的用例,有用的设计模式是什么? 是否需要对挂起的事件进行分组? 我需要推迟活动吗? 我需要事件失效吗?基于时间戳


我正在使用Python,但任何语言中的示例都将受到欢迎。

我认为这只会增加复杂性。如果这不是性能问题,我会保持简单,让冗余事件自行折叠。通过这种方式,代码保持简单,您不必决定哪些事件要合并,哪些事件应该分离(这可能会随着模型的发展而改变)。您是使用现有的事件/信号框架,还是实现了自制机制?@alex-b:这是一个性能问题!我想把我的模型变成一个事件驱动的模型,只触发必要的计算部分。我们的目标是通过只重新计算所涉及的部分来使计算时间尽可能短。@don问:我考虑使用一个像Redis这样的发布/订阅引擎和一个像twisted这样的异步堆栈。但它听起来有点沉重,所以我正在研究一个更智能的解决方案。redis很可能不是一个观察者模式框架。它可以使用它,但它本质上是一个NoSql数据库。您能提供一些您想要的示例/伪代码吗?事实上,你的问题很广泛