我们必须发送自动电子邮件。它们需要可靠地调度,因此我们将它们写入数据库。同时,在 Application_Start
处启动的 System.Threading.Timer
每 30 秒调用一个方法来读取数据库并发送然后删除已发送的条目。所有这些都不是长期运行的任务。我们已小心确保清除数据库队列的过程使用异步方法,因此发送/排队的任何阶段都不会阻塞,整个过程由线程池中的短期方法执行>。应用程序回收的成本也很小(可能导致重新发送一封电子邮件......不是问题)。
传统观点认为,在网络应用程序中运行它不太好,我应该将其转变成一项服务。
写作服务是一项 PITA。如果可能的话我宁愿避免它。那么为什么我不应该在我的应用程序池中运行高效的异步邮件队列呢?谁能帮我解答一下吗?
最佳答案
如果您的网站未被使用,您的应用程序池将不会启动 - 不会发送邮件。
关于c# - 在应用程序池中运行我的邮件队列是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9694738/