这是从MVC . net中启动Heavy Task的更好方法

本文关键字:Task Heavy 更好 方法 启动 MVC net | 更新日期: 2023-09-27 18:16:47

该场景是一个SQL Server,必须使用从一些API调用获得的数据定期更新。对API的每个请求可能需要大约30-200分钟,因此它们不是即时的,并且必须始终向API请求新数据。对API的调用是用MVC应用程序的用户的一些输入参数(如日期或名称)来执行的。我想把它作为一个Windows服务,从MVC启动/停止,但我不知道这是否是最好的方法,因为我不知道他们是否可以很容易地沟通。一个更好的方法是像一个任务项,它可以执行繁重的操作,并直接与mvc通信。要是能看看日志就太有用了。作为专家,你们有什么建议?由于

这是从MVC . net中启动Heavy Task的更好方法

我会使用windows服务并从网站执行命令。这很简单:

MVC某事像

    using System.ServiceProcess;        
    ...
    public ActionResult Update()
    {
        int updateCommandId = 1; //example
        ServiceController sc = new ServiceController("windowsServiceName");
        sc.ExecuteCommand(updateCommandId);
    }

对于windows服务,只需重写OnCustomCommand:

    protected override void OnCustomCommand(int commandId)
    {
         if(commandId == 1) 
         {
          //do your update
         }
    }