【问题标题】:How can we use contextfilter in saga to filter command/event(message) based on some condition?我们如何在 saga 中使用 contextfilter 根据某些条件过滤命令/事件(消息)?
【发布时间】:2019-08-29 20:05:41
【问题描述】:

Masstransit Saga:在两个不同的 saga 工作流程中有一些相同的事件(消息),我们如何在 saga 中使用上下文过滤器根据某些条件过滤命令/事件(消息)?

【问题讨论】:

    标签: rabbitmq masstransit saga


    【解决方案1】:

    您可以在状态机上添加一个条件,而不是使用 ContentFilter。

    During(SomeState,
        When(SomeEvent, x => x.Property == 'Something')
            .Then(...));
    

    【讨论】:

    • 非常感谢您的快速回复。我也通过向每个事件添加条件来实现相同的方式。由于我在两个 sagas 中都有一些 6 到 7 个事件,想知道是否有任何方法可以在 Saga 中的 Configuration 中设置一些东西,就像我们为 Consumer 做的那样而不是为每个事件添加条件?
    • 并不是我真正推荐的,因为您的逻辑会分布在过滤器和状态机逻辑中。如果你愿意,你当然可以为管道创建一个消息过滤器。
    • 感谢您的建议。现在,我为我的场景创建了一个自定义过滤器,效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多