
[英]What's the best way to implement a fulltext search for an ASP.NET MVC application?
[英]What is the best way to implement background services for an ASP.NET application?
我的ASP.NET应用程序需要许多支持服务才能在后台定期运行。 例如:
实施这些服务的最佳方式是什么? 我应该将它们作为Web应用程序的一部分包含在内,在Application_Start()中启动每个“服务”的实例吗? 或者将它们创建为实际的独立服务? 如果他们是Web应用程序的一部分,我可以利用我的缓存数据存储,但这种方法有任何缺点吗?
谢谢你的建议。
今年我需要实现一个任务来缓存数据库中的一些数据,它必须每隔n分钟验证一次更改的代码,我发现这篇非常好的文章;
我这样做是有效的,但正如我告诉你的那样,这只是一项任务,但如果你看到上面的例子,你可以看到它执行了几项任务。
正如您所看到的,在缓存中,您可以在任何时间和间隔执行任务,夜间任务可以在午夜完成,其他任务可以每n分钟或几小时完成。
希望能帮助到你。
- 对于夜间报告生成,我会研究SQL Reporting Services,因为它们具有一些本机订阅服务,允许您通过虚拟的自定义代码向用户发送电子邮件报告。
- 对于逾期工作项通知,您可以使用SSRS(如上所述)通过向其发送包含其逾期项的报告,或者,如果您运行的是SQL 2k5,则使用Notification Services。
我在我的ASP.NET应用程序中定期执行工作线程和线程,我没有遇到任何问题。
我不只是在内部运行应用程序 - 其他人下载并在其网站上运行它,或者在托管公司运行它,因此无需安装服务即可完成操作,从而使部署更加轻松。
与后台工作者结合的计时器对我来说效果很好:
Timer timer = new Timer(intervalSeconds * 1000)
timer.Elapsed += delegate
{
// do the meat
};
timer.Start();
请记住,您将无法访问HttpContext,并且该网站可能因不活动而关闭。
老实说,我从未想过尝试在ASP.net进程中模拟Windows服务,特别是考虑到创建Windows服务是多么容易。 我所看到的大部分尝试都充满了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.