大多数人如何在.NET Web应用程序中编写后台任务?

Gre*_*egB 2 .net c#

我正在编写一个.NET MVC应用程序,需要运行两个后台进程,我不确定这些进程是否应该是Web应用程序中的线程,或者它们是否应该是单独的Windows服务.我更喜欢它们在Web应用程序中,以便更容易部署,配置和管理.

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

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

我将其构建为Web应用程序的原因是,我将让我的客户能够查看有关此过程的历史信息,手动提交作业的能力以及配置应用程序应"看"哪些产品的能力"为了.

是否有一种很好的方法可以将所有这些内容构建到Web应用程序中,还是应该将其拆分为多个应用程序?对Web视图的需求将非常低.

Dar*_*rov 5

Phil Haack 最近在博客中谈到了如果您决定直接在Web应用程序中实现重复的后台任务而不是在单独的服务中将其外部化,则必须面对的挑战.