在网站上长时间运行

时间:2011-05-18 11:37:06

标签: c# asp.net

如果我的网站带有按钮怎么办?用户单击该按钮并启动一个长时间运行的过程。几个小时(或几分钟)后,用户更新网页并查看结果。在网站上实施长期运行的最佳(和其他)方式是什么?

3 个答案:

答案 0 :(得分:4)

从用户体验的角度来看,我建议您实施这项工作,就像在网上商店实施订单处理一样。

当用户启动作业时,他应该能够跟踪作业的状态。工作完成了吗?工作失败了吗?这项工作的进展如何?他应该也可以取消这项工作,也许还可以修改工作的属性。您可以使用电子邮件或SMS实现通知机制,用户应该能够控制它。

通过使用JavaScript / AJAX,您可以提供更具交互性的用户体验,其中作业状态网页会在后台定期自动刷新,而不会强制用户刷新浏览器。

用户应该能够离开他的计算机,然后从另一台计算机连接到该网站,并且仍然能够获得有关待处理和已完成作业的信息。这需要某种形式的用户登录。

我建议您将作业处理代码与网站代码分开。您可以向作业处理用户公开Web服务或其他类似技术。网站应查询服务并显示结果,在作业服务之上提供用户界面。

答案 1 :(得分:1)

我建议您阅读Threading in asp.Net.对于网站性能,可以将耗时的流程放在不同的主题上。

另一种方法是使用AJAX执行任务。这样,您可以向用户显示用户界面,并启动处理请求的异步过程。

答案 2 :(得分:1)

多久了?如果它真的需要几个小时,您不希望该代码在Web服务器中运行。让服务器生成外部进程或启动服务或该行的某些内容,并将长时间运行的代码放在那里。

您可以让代码在运行时将状态更新放在某处(比如在数据库中),并且网站可以检查用户何时回来查看它是如何进行的。