该程序用于将已导入的数据逐行导出到规范化表中。有时可能需要几个小时。
它的工作原理是
- 使用按下按钮开始处理
- 从 jquery 调用 MVC Controller 上的方法。
- 该 Controller 调用一个 DLL,然后开始长处理
一次只有一个人使用这个程序。
我们担心它会占用 ASP.NET IIS 线程。如果我们可以创建一个计划任务,每 30 分钟运行一个 EXE 来检查和处理代码,而不是网站运行代码,这样会更有效吗..
编辑 1:在与同事交谈后,我们现在要做的工作是简单地从网站上删除处理的按钮,并将该处理重构为每 5 分钟运行一次的计划任务......如果有对此有任何评论,请告诉我。
问题实际上是关于网站运行代码与完全独立的 EXE 之间的区别...IIS 线程与进程...它有帮助吗?
最佳答案
如果处理需要几个小时,它绝对应该在一个单独的进程中,而不仅仅是一个单独的线程。通过将其放入单独的进程中,您可以使线程锁定和管理、垃圾收集和其他事情复杂化。例如,如果您的 Web 服务器需要重新启动,您的独立进程可以继续运行而不会受到影响。通过一些工作,您甚至可以根据需要在单独的服务器上启动此进程(当然,您需要更改进程启动机制才能执行此操作)
关于c# - 如何处理 ASP.NET MVC 站点上长时间运行的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20708689/