在HostedService或WebContext中运行的RabbitMQ侦听器

问题描述 投票:0回答:1

我有一个dotnet核心项目,其csproj中引用了SDK Microsoft.NET.Sdk.Web,主要是为了获得一些出色的功能(即IoC,appsettings等)。

在此项目中,我没有添加Mvc控制器中间件,仅添加了一个UseEndpoints()用于快速运行状况检查。

除此之外,我还有一些RabbitMQ接收器,它们使用给定的路由密钥来处理发送到交换机的消息。这些接收器是为给定RabbitMq通道创建RabbitMQ AsyncEventingBasicConsumer,然后将其自己的委托添加到使用者的Received事件中的类。

我的问题是:在Web项目中拥有这些接收器的长期存在的实例(在IoC中是单例还是更好),还是应该为它们创建一个HostedService以便在其中运行/运行?

它们各自的优缺点是什么?目前,我将它们放在BackgroundService中,但是我看不到将它们放在由我的Web应用程序启动的HostedService中的任何实际好处,而不是让这些实例直接存在于Web应用程序本身中。

谢谢

我有一个dotnet核心项目,其csproj中引用了SDK Microsoft.NET.Sdk.Web,主要是为了获得一些出色的功能(即IoC,appsettings等)。在这个项目中,我没有添加...

c# asp.net-core .net-core rabbitmq worker
1个回答
0
投票

因此,我假设您正在WebApp中生成任务或线程来处理后台作业。

© www.soinside.com 2019 - 2024. All rights reserved.