2012-03-13 35 views
6

我已经实现了几种不同类型的后台工作人员在ASP.NET下运行,但想知道推荐/最佳实践方法可能是什么。ASP.NET 4.0-后台工作人员 - 最佳实践

在一个数据存储(在这种情况下是一个mongo数据库),我有一个我需要处理的动作队列。

队列将根据ASP.NET MVC应用程序中的某些操作而增长。

我想启动后台线程/工作线程,不断处理这些排队的项目。

就像在应用程序的启动事件中启动后台工作程序一样简单,还是应该在计时器上完成?

在此先感谢

SAM

+4

无论你做什么,请牢记这一点http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx – labroo 2012-03-13 23:29:29

+0

谢谢 - 本来想回答的。不是最好的做法,但如果管理得当,可以足够强大的工作。从我读过的内容来看,普遍的共识是将后台进程作为Windows服务托管 - 显然在某些情况下不切实际。尽管你的链接是一个很好的例子。 – sambomartin 2012-03-14 00:17:30

回答

2

我用http://quartznet.sourceforge.net/index.html的作业调度,并与它有很大的运气。

+0

感谢您的建议rboarman,但它对我来说有点矫枉过正 – sambomartin 2012-03-14 00:18:36

+0

+1我在windows服务中使用石英。非常快速的安装和灵活的调度。 – gdp 2013-04-20 06:06:49

1

我认为最好的答案是这篇文章来自Haacked。

The Dangers of Implementing Recurring Background Tasks In ASP.NET

总之IIS是一个请求从动 web服务器。这意味着如果没有人击中你的网站,将不会发生任何事情。你可以解决它,但如果你想要强大的后台任务,推荐的方法是Windows服务