我最近开始为一家新公司工作,现在正在开发一个Web应用程序(asp.net)。此应用程序使用Global.asax启动计时器,该计时器将以给定间隔执行各种操作(发送电子邮件,在数据库中设置各种值等)
他们现在想要的是有一些东西可以调用第三方Web服务来检索一些数据并在我们的最后更新数据库。我通常会在Windows服务中执行以上所有操作。但是他们似乎很高兴在global.asax
中有这种类型的东西我将创建一个新项目并将此新功能作为Windows服务开发,但是我应该打扰吗?也许我应该把它添加到global.asax?
我的问题是针对上述情况的最合适/最佳方法是什么?
答案 0 :(得分:2)
使用外部服务是最佳选择。
与请求无关的线程中的未处理异常将取消该过程。即使您通过Application_Error方法设置了处理程序,也会发生这种情况。
如果您在网络服务器场中运行您的网站,您最终可能会遇到应用程序的多个实例,这些实例都会同时尝试运行相同的任务。处理比第一项更具挑战性,但仍然不太难。一种典型的方法是使用所有服务器(例如数据库)共用的资源作为协调任务的同步机制。
- 醇>
您的网站运行的AppDomain可能由于多种原因而停止运行,并使用它来完成后台任务。如果数据在代码执行过程中发生,则可能会损坏数据。
欲了解更多信息: