这是从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通信。要是能看看日志就太有用了。作为专家,你们有什么建议?由于
我会使用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
}
}