首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MassTransit如何在发布或使用消息时创建自定义中间件或管道

MassTransit如何在发布或使用消息时创建自定义中间件或管道
EN

Stack Overflow用户
提问于 2021-06-24 15:33:15
回答 2查看 105关注 0票数 0

我使用了一个NET5API,它通过MassTransit发布和消费消息。问题是,我试图找到一种方法来为这两种情况(发布、消费)创建自定义中间件或管道,以测量发布或消费消息的时间……

我试图创建一个与文档表示https://masstransit-project.com//advanced/middleware/custom.html完全相同的自定义中间件,但问题是,当我试图发布消息时,无法调用这些方法。根据this topic的说法,它只适用于消费的消息。有没有人知道如何为这两种情况创建管道或中间件(发布、消费)?

EN

回答 2

Stack Overflow用户

发布于 2021-06-24 20:05:34

有两个方法,ConfigureSendConfigurePublish,可以通过IBusFactoryConfigurator访问,其中过滤器可以分别添加到发送和发布管道。

票数 0
EN

Stack Overflow用户

发布于 2021-06-29 07:23:26

在我看来,您只需要测量(log?)发布和使用消息的时间-如果是这样,您可以使用observers。具体地说,是publish observersconsume observers

例如,消费者观察者的一个例子是:

代码语言:javascript
运行
复制
public class ConsumeObserver : IConsumeObserver
{    
    Task IConsumeObserver.PreConsume<T>(ConsumeContext<T> context)
    {
        // called before the consumer's Consume method is called
    }

    Task IConsumeObserver.PostConsume<T>(ConsumeContext<T> context)
    {
        // called after the consumer's Consume method is called
        // -> Log DateTime.Now with message details found in context. <-
    }

    Task IConsumeObserver.ConsumeFault<T>(ConsumeContext<T> context, Exception exception)
    {
        // called if the consumer's Consume method throws an exception
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68111389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档