我计划在我的项目(MVC5)中使用HostingEnvironment.QueueBackgroundWorkItem来从控制器调用后台进程,如下所示。
System.Web.Hosting.HostingEnvironment.QueueBackgroundWorkItem(async cancellationToken =>
{
var result1 = await AddUsers(userList, param1, param2);
});
这是否支持多个后台进程并行运行?有什么方法可以优化我的实现?
答案 0 :(得分:1)
是的,它将支持多个后台进程,并且它们并行运行。
但是,您应该仔细考虑这些后台进程应该做什么。 QueueBackgroundWorkItem
不是可靠的,因为您可以假设工作一旦排队就会完成。像"添加用户"不是一个合适的用例,您应该使用具有可靠队列(例如,Azure队列或MSMQ)和独立后端(例如,Azure webjob或Win32服务)的体系结构。