Asp.net mvc 2 我可以在以下场景中使用异步控制器吗?
我在Asp.net MVC中有一个应用程序,我希望在某个时候向用户显示一个模式对话框,该对话框将显示流程执行进度指示器 幕后的流程执行大量数据库数据处理(基于现有数据,它生成大量结果记录,并将这些记录写回数据库)。这个过程可能需要很短的时间到很长的时间(取决于现有数据) 应用程序将异步启动此过程(通过Ajax请求),并以相同的方式显示进度 问题 我读过一些关于异步控制器的文章,在异步控制器中,可以异步启动进程并通知进程结束,但没有进度指示,我也不确定浏览器超时是如何处理的。就客户端而言,异步请求与同步请求是相同的。因此,客户机将等待响应(据我所知)。主要区别在于服务器将以异步方式执行某些内容,因此不会阻止其他传入请求。我实际上应该做的是:Asp.net mvc 2 我可以在以下场景中使用异步控制器吗?,asp.net-mvc-2,polling,long-running-processes,asynccontroller,Asp.net Mvc 2,Polling,Long Running Processes,Asynccontroller,我在Asp.net MVC中有一个应用程序,我希望在某个时候向用户显示一个模式对话框,该对话框将显示流程执行进度指示器 幕后的流程执行大量数据库数据处理(基于现有数据,它生成大量结果记录,并将这些记录写回数据库)。这个过程可能需要很短的时间到很长的时间(取决于现有数据) 应用程序将异步启动此过程(通过Ajax请求),并以相同的方式显示进度 问题 我读过一些关于异步控制器的文章,在异步控制器中,可以异步启动进程并通知进程结束,但没有进度指示,我也不确定浏览器超时是如何处理的。就客户端而言,异步请求
我自己在项目中没有使用过异步控制器。然而,这里有一个链接,链接到一个曾经有过的人 我个人曾在一个大型生产项目中使用过2号 第二个是一个服务应用程序,运行在一个单独的服务器上,使用OpenSSH在两个服务器之间进行通信。我们会定期轮询进度,通过AJAX将进度条更新到客户端UI 此外,通过将web服务器与长时间运行的流程分离,您可以分离您的关注点。您的web服务器对将文件写入磁盘、处理IO等不感兴趣,因此不应该承担这样的负担 如果长时间运行的进程必须终止或失败,那么这不会影响web服务器处理请求和处理事务 另一个建议是,对于一个非常长的运行过程,不要让客户承担等待的负担,让他们可以选择稍后再来查看进度。即,完成后向他们发送电子邮件
或者实际向他们展示一些有趣的东西,在我们的例子中,我们有一个签名的Java小程序,精确地展示了他们在那个时刻的流程。基于我自己的知识和经验。问题是,我不确定这是否是正确的方法…我已经更新了我的问题有一些额外的信息供你考虑。我在项目中还没有使用过自动控制器。然而,这里有一个链接,链接到一个曾经有过的人。另一方面:我还在生产环境中使用#2生成非常大的报告。我不知道一个异步控制器如何处理如此长而密集的请求。哦,是的。Link与我到目前为止所做的非常相似。我不使用异步控制器,但我使用
BeginInvoke
对长时间运行的进程使用池线程。