HostingEnvironment.QueueBackgroundWorkItem 支持多个后台进程

HostingEnvironment.QueueBackgroundWorkItem support for multiple background processs

我计划在我的项目 (MVC5) 中使用 HostingEnvironment.QueueBackgroundWorkItem 从控制器调用后台进程,如下所示。

System.Web.Hosting.HostingEnvironment.QueueBackgroundWorkItem(async cancellationToken =>
                    {
                        var result1 = await AddUsers(userList, param1, param2);
                    });

这是否支持多个后台进程并行 运行?有什么方法可以优化我的实施吗?

是的,它将支持多个后台进程,并且它们 运行 并行进行。

但是,您应该仔细考虑那些后台进程应该做什么。 QueueBackgroundWorkItem 不是 可靠的 ,因为您可以假设工作在排队后就会完成。 "add user" 之类的操作不是合适的用例,您应该改用具有可靠队列(例如 Azure 队列或 MSMQ)和独立后端(例如 Azure webjob 或 Win32 服务)的体系结构。