我正在写一个需要两个后台进程运行的.NET MVC应用程序,我不确定这些进程应该是Web应用程序中的线程还是它们应该是独立的Windows服务。我更喜欢他们在网络应用程序中,以便更容易部署,配置和管理。大多数人如何在.NET Web应用程序中编程后台任务?
第一个过程是一个定时事件,需要每15分钟检查一次数据源,以确定某些产品是否已发货。如果任何产品已发货,则此过程将获取有关产品的信息,并在数据库表(队列)中创建“作业”记录,以便稍后处理。
第二个过程是另一个需要检查数据库表(队列)以查看是否有任何工作要做的定时事件。如果有未处理的记录,它会将它们读入线程安全列表,然后使用几个.NET任务并行处理它们。
我把这个作为一个网络应用程序构建的原因是,我要让我的客户能够查看有关此过程的历史信息,手动提交作业的能力以及配置哪些产品的能力应用程序应该“看”。
有没有一种很好的方法可以将所有这些构建到Web应用程序中,还是应该将它分解为多个应用程序? Web视图的需求将非常低。
感谢您的支持。我并不知道在后台运行任务的一些风险。 – GregB