Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 大多数人是如何在.NET web应用程序中编写后台任务的?_C#_.net - Fatal编程技术网

C# 大多数人是如何在.NET web应用程序中编写后台任务的?

C# 大多数人是如何在.NET web应用程序中编写后台任务的?,c#,.net,C#,.net,我正在编写一个需要两个后台进程才能运行的.NETMVC应用程序,我不确定这些进程是web应用程序中的线程,还是单独的windows服务。我更希望它们位于web应用程序中,以便更容易部署、配置和管理 第一个过程是一个定时事件,需要每15分钟检查一次数据源,以确定是否已装运某些产品。如果已经发货,此过程将获取有关产品的信息,并在数据库表(队列)中创建一个“作业”记录,以便稍后处理 第二个进程是另一个定时事件,需要检查数据库表(队列)以查看是否有工作要做。如果有未处理的记录,它会将它们读入线程安全列表

我正在编写一个需要两个后台进程才能运行的.NETMVC应用程序,我不确定这些进程是web应用程序中的线程,还是单独的windows服务。我更希望它们位于web应用程序中,以便更容易部署、配置和管理

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

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

我之所以将其构建为一个web应用程序,是因为我要让我的客户能够查看此流程的历史信息、手动提交作业以及配置应用程序应“查找”的产品


有没有一种好方法可以将所有这些都构建到web应用程序中,或者我应该考虑将其拆分为多个应用程序?对web视图的需求将非常低。

如果您决定直接在web应用程序中实现重复的后台任务,而不是将其外部化到单独的服务中,则Phil Haack将不得不面对这些挑战。

我建议为后台操作提供专门的服务。原因是IIS可以在任何时间点破坏整个应用程序。

谢谢。我没有意识到在后台运行任务的一些风险。