【问题标题】:How to correctly use EasyNetQ in a multi-threaded environment如何在多线程环境中正确使用 EasyNetQ
【发布时间】:2019-11-20 20:21:00
【问题描述】:

我正在学习消息代理(特别是 RabbitMQ),并且我已经使用 EasyNetQ 开始了一个项目。根据我的阅读,最佳实践是使用与代理的长期连接,并在应用程序结束时结束它们。在我的项目中,我在 Windows 服务中使用 EasyNetQ。最好的方法是在onStartMethod() 中实例化连接(IBus)并在onStop() 期间处理它吗?如果是这样,如果我在OnStartMethod() 中实例化在各个线程上运行的一些任务,每个线程可以安全地使用总线实例来发布/订阅吗?我在文档中找不到任何东西。提前致谢。

【问题讨论】:

    标签: c# concurrency rabbitmq task-parallel-library easynetq


    【解决方案1】:

    完全正确,在您的应用中保留一个 IBus 实例,它可以安全地从多个线程中使用。

    【讨论】:

    • 由于我使用这个实例来延长应用程序的寿命,如果我使用 mvvm 模式并且我在视图模型中有 Ibus 实例,那么当应用程序关闭?
    • 我不知道没有更多的上下文。看起来更像是 MVVM 模式,而不是关于 EasyNetQ,也许您可​​以将其作为一个单独的问题发布?
    猜你喜欢
    • 2018-12-08
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多