2011-10-21 34 views
2

我正在写一个需要两个后台进程运行的.NET MVC应用程序,我不确定这些进程应该是Web应用程序中的线程还是它们应该是独立的Windows服务。我更喜欢他们在网络应用程序中,以便更容易部署,配置和管理。大多数人如何在.NET Web应用程序中编程后台任务?

第一个过程是一个定时事件,需要每15分钟检查一次数据源,以确定某些产品是否已发货。如果任何产品已发货,则此过程将获取有关产品的信息,并在数据库表(队列)中创建“作业”记录,以便稍后处理。

第二个过程是另一个需要检查数据库表(队列)以查看是否有任何工作要做的定时事件。如果有未处理的记录,它会将它们读入线程安全列表,然后使用几个.NET任务并行处理它们。

我把这个作为一个网络应用程序构建的原因是,我要让我的客户能够查看有关此过程的历史信息,手动提交作业的能力以及配置哪些产品的能力应用程序应该“看”。

有没有一种很好的方法可以将所有这些构建到Web应用程序中,还是应该将它分解为多个应用程序? Web视图的需求将非常低。

回答

5

Phil Haack recently blogged关于如果您决定直接在您的Web应用程序中实施周期性后台任务,而不是在单独的服务中将其外化,您将不得不面对的挑战。

+0

感谢您的支持。我并不知道在后台运行任务的一些风险。 – GregB

3

我会建议一个专门的后台操作服务。这样做的原因是IIS可以随时拆卸整个应用程序。

+0

如此翔实,谢谢你的回答... – JDandChips

相关问题