1,502
社区成员
发帖
与我相关
我的任务
分享
Public Class HomeController
Inherits System.Web.Mvc.Controller
''' <summary>
''' 根据id查询处理结果
''' </summary>
''' <returns></returns>
Function Index(Optional Id As Integer = 0) As ActionResult
'根据Id查找是否有对应任务
'如果有就读取进度和状态, 如果没有就直接返回没有(具体按实际业务流程来)
Return View()
End Function
''' <summary>
''' 前端页面,通过这个页面提交耗时任务给后台处理
''' </summary>
''' <returns></returns>
<HttpGet>
Function Query() As ActionResult
'前端页面
Return View()
End Function
''' <summary>
''' 耗时任务处理后台,处理的同时,实时更新进度,供Index这个Action里查询
''' </summary>
''' <param name="Year0"></param>
''' <param name="Year1"></param>
''' <returns></returns>
<HttpPost>
Function Query(Year0 As Integer, Optional Year1 As Integer = 0) As ActionResult
Year1 = IIf(Year1 = 0, DateTime.Now.Year, Year1)
Task.Run(Sub()
'在这儿写耗时比较长的步骤(比如查询数据并生成报表,比如生成可供下载的文件)
'并且在处理过程中实时更新进度
'比如向Redis里写入任务总步骤数、当前步骤、总记录数、已处理记录数
End Sub)
Return Content("已经提交处理")
'Return Content("提交数据非法")
'这儿最好是返回一个Json对象,方便前端处理
End Function
End Class