Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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# 可重复背景法_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

C# 可重复背景法

C# 可重复背景法,c#,asp.net,asp.net-mvc,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 5,所以我一直在到处寻找一种方法来做这件事,但没有成功。 我正在做一个MVC5项目。 我正在尝试一种方法,它可以做一些特殊的事情,每10分钟在我程序的后台重复运行一次(该方法从其他站点获取信息并将它们放入数据库) 我希望通过链接提供一些示例,或者提供一些指导,以便以有效的方式进行操作。使用定时事件如何 var timer = new System.Timers.Timer(600,000); timer.elapsed += (sender, e) => { /*fetch data*/ };

所以我一直在到处寻找一种方法来做这件事,但没有成功。 我正在做一个MVC5项目。 我正在尝试一种方法,它可以做一些特殊的事情,每10分钟在我程序的后台重复运行一次(该方法从其他站点获取信息并将它们放入数据库)


我希望通过链接提供一些示例,或者提供一些指导,以便以有效的方式进行操作。

使用定时事件如何

var timer = new System.Timers.Timer(600,000);
timer.elapsed += (sender, e) => { /*fetch data*/ };

尝试将这样的IIS线程绑定到后台工作中不是一个好主意。更好的选择是让一个单独的进程来完成这项工作,例如Windows服务。但是,如果您在可使用的选项中受到限制,则可能:

  • 创建一个简单的控制台应用程序来完成这项工作,并设置一个Windows计划任务以10分钟的间隔运行它。(假设您可以在部署设置中执行此操作)
  • 如果所有其他操作都失败,请在执行该任务的控制器上创建正常操作方法。该任务将在点击url时执行。。。因此,通过CRON作业(通常由托管提供商提供)每隔10分钟点击一次该url

这不是您的典型选项,但我觉得它们可能对您很实用。

您应该在主机上将其作为单独的Windows服务运行……或者制作一点.exe并运行一个计划任务。您的应用部署在哪里?蔚蓝色的前提是?这将很好地工作,直到进程从IIS运行时回收到中间。很好的提示。