在IIS中可靠地托管“始终运行后台进程”

时间:2017-10-10 15:13:15

标签: asp.net iis hangfire

我需要运行一个事件处理程序,它应该“一直在后台运行”。该应用程序还必须在IIS中运行,因为与Windows服务相比,Devops团队发现安装和部署IIS托管应用程序更容易。事件处理程序本身不应超过5秒来处理一个事件

考虑到上述要求,我做了一些谷歌搜索并找到了以下方法

  1. Task.Run(()=> {MyMethod();});
  2. HostingEnvironment.QueueBackgroundWorkItem(m => MyMethod());
  3. 使用Hangfire
  4. 还要了解这些方法中的任何一种都需要与IRegisteredObject结合使用,以便优雅地处理应用程序池回收。

    参考

    有人可以建议选择上述哪种方法(或任何其他方法),为什么?

    参考文献 -

    The Dangers of Implementing Recurring Background Tasks In ASP.NET

    Making ASP.NET application always running

    Task.Run vs BackgroundWorkItem

0 个答案:

没有答案