我需要可靠的方法同时运行10个不同的任务。例如,第一个是发送电子邮件,而下一个是清理特定表中的行...等等。
我已经使用了Thread类,虽然它在我的开发机器(VS2010内部Web服务器)上运行良好,但是这些线程中的非线程似乎在我的生产服务器上完全正常工作。我不知道在生产服务器上调试问题的有效方法。
我看到this technique鼓励您注册缓存对象。由于应用程序在缓存项到期时触发回调,因此可以运行任何代码来模拟线程行为。这似乎有点像Micky Mouse。
我想我的问题是在ASP.NET MVC2应用程序中无限期运行后台任务的正确方法是什么?
答案 0 :(得分:4)
最好的方法是不在ASP.net代码中运行它们。这听起来像是计划任务或Windows服务的理想任务。 ASP.net(MVC或其他)并没有真正建立这样做 - 将它们分成一个单独的项目。
答案 1 :(得分:1)
肯定有很多方法。这是一个。
将长时间运行的任务实现为Windows服务,使用MSMQ从ASP.NET应用程序向该服务发送有关待处理的消息,
答案 2 :(得分:1)
之前我一直在使用quartz.net,并且效果非常好。