【问题标题】:How to monitor MassTransit Courier routing slip properly?如何正确监控 MassTransit Courier 路由单?
【发布时间】:2021-03-03 11:28:36
【问题描述】:

我设法通过一系列活动来实施 MassTransit Courier 路由单。我决定添加一个状态机来监控它,因此我创建了单独的事件和状态,并使用 EF Core 作为 Automatonymous 状态机的存储。为了跟踪当前状态,我在每个活动执行结束时发布一个事件。一切正常,我可以监控数据库中路由单的当前状态。

但这是最好的方法吗?根据 MassTransit 文档中的这一部分:https://masstransit-project.com/advanced/courier/events.html 看起来应该自动发布事件。那么也许还有另一种监控路由单的方法,它不需要创建事件并在每个活动中手动发布它们?

【问题讨论】:

    标签: c# masstransit automatonymous routing-slip courier


    【解决方案1】:

    当一个传送单正在执行时,MassTransit 将publish events 处理每个传送单活动以及一个传送单完成后的事件。

    您可以使用这些事件,而不是创建自己的事件来监控从开始到结束的路由单(所有事件都通过TrackingNumber 关联)。

    如果您的系统中有多个用于不同交易的路由单,您可以指定 subscriptions 将这些事件直接路由到每个交易的跟踪传奇,而不是发布,因此它们不会重叠 em> 到单独的跟踪 sagas 中。

    这些事件最适合用于监控/跟踪传送单的执行,不应用于代替业务事件。例如,如果您的活动向信用卡收费,那么发布“CreditCardCharged”事件以及出于会计/法律目的分别审计/跟踪卡交易的详细信息是有意义的。

    【讨论】:

    • 文档还提到了创建自动状态机来维护当前状态。有没有代码示例如何使用这种方法实现它?
    • 我没有为此目的的特定示例,但有许多示例(包括 Sample-Twitch)使用路由单并监控其执行情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 2016-05-22
    • 2016-07-16
    相关资源
    最近更新 更多