【发布时间】:2017-04-17 23:36:33
【问题描述】:
我的控制器操作需要很长时间才能运行(预期)。在下面的代码中,
ProcessImportFileAPI(HoldAPI)
1 小时后超时。
public JsonResult DataFileUpload(string positionDate)
{
// Reset validation error collection
ImportDataValidationErrors = new List<ImportFileRecord>();
string[] errs;
try
{
var HoldAPI = "SomeAPI"
retDictAPI = ProcessImportFileAPI(HoldAPI);
string ReturnVal = "Import is successful";
return Json(ReturnVal); //never return because of TIMEOUT.
}
控制器操作正在正确执行所有任务,但由于超时,我无法将值返回给视图。我该如何解决这个问题?有什么指点吗?
【问题讨论】:
-
所以我假设
HoldAPI没有返回任何结果。是第三方API还是你写的?ProcessImportFileAPI方法里面的代码也很有趣 -
ProcessImportFileAPI(HoldAPI) 接收 HoldAPI,需要 >1 小时才能完成(获取市场数据、更新记录等)。这是预料之中的。当我调试时,我的代码会出现,直到 return Json(ReturnVal);但随后视图一无所获。
-
如果您确实正在运行预计需要 1 小时的东西,那么您需要将其卸载到某种排队系统。 (异步运行。)
-
异步成功了。
标签: c# asp.net asp.net-mvc asp.net-mvc-4