首页 / 知识
关于c#:在ASP.Net应用程序中处理长时间运行的最佳方法是什么?
2023-04-15 23:25:00

What's the best way to handle long running process in an ASP.Net application?在我的Web应用程序中,有一个过程可以从整个Web查询数据,对其进行过滤,然后将其保存到数据库中。可以想象,此过程需要一些时间。我当前的解决方案是增加页面超时,并在加载时向用户提供AJAX进度条。这是一个有两个原因的问题-1)它仍然需要很长时间并且用户必须等待2)它有时仍会超时。 我已经涉足线程化过程,并且已经阅读了我应该将其异步发布到Web服务("即发即弃")的信息。 我读过的一些参考文献: 所以我的问题是-最好的方法是什么? 更新:用户输入数据后,我想将其重定向到结果页面,该页面随着进程在后台运行而逐渐更新。 为避免过多的体系结构天文学,我经常使用隐藏的iframe来调用长时间运行的流程并流回进度信息。结合jsProgressBarHandler之类的功能,您可以轻松地为较长的任务创建出色的带外进度指示,而一般的进度动画不会削减这些进度指示。 在特定情况下,您可能希望每个任务使用一个LongRunningProcess.aspx调用,以避免这些页面超时。 例如,调用LongRunningProcess.aspx?taskID = 1将其启动,然后在该任务结束时发出
恶作剧。 我们遇到了类似的问题,并通过一个异步Web服务调用开始了工作(这意味着用户不必等待工作完成)就解决了该问题。然后,Web服务启动了一个SQL作业,该作业执行了该工作,并定期用该工作的状态更新了一个表。我们提供了一个允许用户查询表的UI。 我上一份工作遇到了这个确切的问题。我发现最好的方法是启动一个异步进程,并在完成时通知用户(通过电子邮件或其他方式)。由于超时和浪费生产力,让他们等待那么长时间会成问题。让他们等待进度条会给他们一种错误的安全感,即他们关闭浏览器时可以取消该过程,但实际情况可能并非如此,具体取决于您如何设置系统。 将作业及其相关参数添加到作业队列表中。然后,编写一个Windows服务,该服务将拾取并处理这些作业,将结果保存到适当的位置,然后通过电子邮件将结果链接发送给请求者。提供某种类型的UI也是一种不错的选择,以便用户可以检查其作业的状态。 这种方法比启动单独的线程或增加超时要好得多,尤其是在您的应用程序较大且需要扩展的情况下,因为您可以根据需要简单地添加多个服务器来处理作业。 我对此的解决方案是一种带外服务,该服务执行这些操作并将其缓存在db中。 当该人第一次请求某项内容时,他们会稍等一会,然后出现,但是如果刷新,它会立即更新,然后由于其内部数据库,它现在是每小时更新的一部分最后一个请求之后的24小时内。 您可以创建另一个线程,并在会话或应用程序状态下存储对该线程的引用,具体取决于该线程在每个网站上只能运行一次,还是在每个用户会话中只能运行一次。 "最佳方法"可能在某种程度上取决于这些问题的答案... |
最新内容
相关内容
linux查询命令进程?
linux查询命令进程?,系统,名称,总量,情况,状态,进程,材料,工具,电脑,数据,怎么查看linux进程名称1、linux 下查看进程可以使用的命令:ps命令查查询linux内存命令?
查询linux内存命令?,系统,情况,信息,工具,电脑,状态,命令,内存,发行,总量,查看linux的cpu和内存1、要查看内存使用情况,可以使用free命令。Freelinux命令查询屏保?
linux命令查询屏保?,系统,工作,工具,信息,地址,图片,命令,目录,基础,电脑,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令脚本linux上运行命令?
脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,typescript脚本中怎样运行Linux命令?1、Script可用于记录当前用户linux加载过滤命令?
linux加载过滤命令?,数据,系统,工具,标准,官网,灵活,最新,命令,文件,文件名,linux怎样加载文件过滤驱动1、Linux需要装载磁盘驱动器才能读取文linux查询线程命令?
linux查询线程命令?,系统,第一,线程,命令,进程,代码,分时,软件,选项,界面,如何在Linux中查看进程的多线程1、Linux系统查看某个进程的线程数可linux运行脚本时未找到命令?
linux运行脚本时未找到命令?,系统,信息,环境,软件,异常,官网,底部,电脑,平台,为什么说,linux无法找到脚本文件是什么意思?1、意思是:找不到执行linux运行脚本的命令?
linux运行脚本的命令?,系统,工具,代码,服务,脚本,状态,密码,环境,位置,暂停,linux下如何运行可执行文件1、file 文件名 可以查看文件类型:或者:linux查询ip命令?
linux查询ip命令?,地址,网络,信息,设备,系统,电脑,终端,命令,中心,技术指标,linux查询ip地址命令1、输入以下命令:ipaddrshow。每个设备的IP地linux过滤命令参数?
linux过滤命令参数?,工具,数据,标准,地址,命令,设备,系统,信息,指令,文件,如何通过linux命令根据某一列值唯一来过滤数据(1)定义你的敏感命令列linux查询所有命令?
linux查询所有命令?,工作,地址,系统,命令,信息,目录,工具,基础,文件,内容,linux查看文件内容命令1、查看文件所有内容命令:cat。该命令可以直接linux命令过滤端口?
linux命令过滤端口?,情况,系统,状态,网络,端口,灵活,信息,命令,终端,选项,linux下查看iptables开放了哪些端口的命令是什么?1、查看哪些端口被