如何从客户端启动服务器进程并等待完成?

时间:2019-07-14 12:17:00

标签: c# jquery web-applications asp.net-web-api2

我有一个基本的Web应用程序,该应用程序被设置为在单击按钮时向我的服务器发起ajax调用,从而启动数据处理任务。

   $("#mybutton").click(function(){
   ajax: {
       url: "/startProcess",
       type: "POST",
       contentType: "application/json",
       data: JSON.stringify({customer: "Ford"}),
       success: function (){
           alert("Finished");
       },
       error: function(){
       alert("Something went wrong");
       }
        }
   });

我相应的服务器端端点设置如下:

    [Route("startProcess")]
    [Http.HttpPost]
    public IHttpActionResult StartProcess([FromBody] CustomerModel model)
    {
     var processingTask = new DataProcess();
     var customer = model.customer;
     var results = processingTask.GetData(customer);
     if(results != null) {
     return Ok(results);
     }
     else {
     return BadRequest();
     }
    }

和处理任务:

    public ResultsModel GetData(string customer)
    {
     //Do stuff here
     return results;
    }

根据数据集的大小,任务可能需要几个小时到几天才能运行。多个用户可以访问该站点以查看任务的状态。我现在面临的挑战是,如果一个用户启动任务并刷新网站,他们可以再次启动任务,或者另一个用户可以导航到该网站并执行相同的操作。

什么是正确的方法来设置Web应用程序,以使其监视处理任务的进度并向用户发出任务正在运行或已完成的信号?

我认为这是一个涉及的问题,因此我们希望能获得任何指导

0 个答案:

没有答案