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 服务)的体系结构。
我计划在我的项目 (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 服务)的体系结构。