我想创建一个网页,用户可以在其中启动一个流程,这个流程需要几分钟才能完成。
My question is:
When the user clicks on a button, should I start the process on a different thread and send him to a different page? I don't want the process to end in case he closes the window or the connection is lost.
还有如何防止其他用户启动此过程。
我考虑过在应用程序状态中放置一个变量来指示进程当前是否正在运行。
谢谢你的建议
最佳答案
如果这是一个长时间运行的进程,最好将其移出到服务中。通过这种方式,您可以水平缩放它。如果您将其留在网站中,一旦负载增加,您将需要重构您的代码。
服务可以有一个长时间运行的操作请求队列。在给定的时刻,该服务将处理一个/两个/任何项目。根据您的需要,您可以将操作结果及其当前状态保存到存储中。
表示层启动操作(用户按下按钮),然后轮询存储以获取结果,完成后将结果从存储传递给用户。
关于c# - 用户在网站中触发一个漫长的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211684/