【发布时间】:2015-09-27 10:53:06
【问题描述】:
我的要求是在 Web 应用程序中从外部服务器发送电子邮件,平均需要大约 4 到 5 秒来处理和发送确认电子邮件。我不希望用户等待这个,所以我用 Process().StartInfo.Start() 触发了一个控制台应用程序,它在后台执行。问题是我可以依赖多少,因为在正常情况下,应用程序每天发送大约 10000 封电子邮件,而在高流量日它可能超过 80000。应用程序或服务器可能遇到哪些可能的问题/问题?有没有更好的解决方案?
【问题讨论】:
-
您使用哪个 .NET 版本?
-
你可以试试Task Class
-
感谢马克西米利安的回复。该应用程序正在使用 .Net 框架 3.5
-
遗憾的是
Task与.NET 4一起发布。但是你可以尝试打开一个线程而不是触发一个控制台应用程序。 -
我们确实可以选择使用线程池或自定义线程,但这两种解决方案都有其自身的局限性。如果后台任务的数量超过一定数量,它可能会耗尽应用程序,并且在少数情况下可能会关闭应用程序池。此外,线程池通常具有最大线程数。如果所有线程都忙,则将其他任务放入队列中,直到它们可以在线程可用时提供服务。
标签: asp.net web-applications .net-3.5 background-task