gpt4 book ai didi

.net - EventStore 订阅一个类别的流

转载 作者:行者123 更新时间:2023-12-04 01:56:04 26 4
gpt4 key购买 nike

我已经开始在 .Net 中创建一个测试应用程序,它使用 Greg Young 的 EventStore 作为 CQRS/ES 的后备存储。

为了方便加载完整的聚合,我保存到一个名为“agg-123”的流中。例如,对于 id 为 553 的产品聚合,会有一个名为“product-553”的流。然后对于“Order”聚合,流将被命名为“order-123”。

从事件的再水化和保存来看,这很有效。

我现在正在尝试创建一个监听器,该监听器将监听某些流然后填充查询数据库。我看到的订阅方法似乎只能订阅“order-123”或“all”。我看不出我将如何订阅“产品-”或“订单-”,或两者。

我想要么

  • 我错过了流名称的重点,并将它们命名为错误
  • 错过了选择它的方法,例如“product-*”
  • 预计订阅“全部”并过滤掉您不感兴趣的内容,尽管这会导致问题是它也发送所有“统计”事件

  • 有人有什么建议吗?

    最佳答案

    在您的预测中,您可以使用 fromCategory()。 EventStore 按流的名称对每个流进行分类,直到第一个“-”。所以你的 'order-123' 和 'order-456' 流都在 'order' 类别中。

    因此,您可以执行以下操作:

    fromCategory('order')
    .whenAny(function(s,e) {
    linkTo('orders',e);
    });

    这会将所有订单聚合中的所有订单相关事件投影到您可以订阅的单个“订单”流中。

    您需要确保类别预测正在运行。 (自从我使用 EventStore 已经有一段时间了,当投影处于测试阶段并且默认情况下未启用时,它又回来了,不确定最新版本中的情况是否相同)

    关于.net - EventStore 订阅一个类别的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749938/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com