我正在使用ActionMailer.net从我的MVC网站发送电子邮件,问题是发送电子邮件几次需要几秒钟,这会延迟我的ajax电话。
我尝试使用DeliverAsync()
,但仍然存在相同的延迟,我将ActionMailer控制器操作称为:
new EmailController().EntryEmail(CurrentUser, CurrentUser, postText).DeliverAsync();
所以我的问题是,有没有办法在另一个线程或异步中调用相同的Action。
注意:
我试图使ActionMailer控制器继承自AsyncController
,但不能,因为它已经从另一个类继承。
另外作为参考我之前问过这个问题:Is it fine to send email from another thread like this?
答案 0 :(得分:0)
为什么不创建一个继承自AsyncController的新基类?
对于简单的火灾而忘记你可以使用ThreadPool.QueueUserWorkItem
。
就个人而言,我更喜欢对电子邮件进行排队,并且有一个单独的后台线程来处理队列。这可以像数据库中的“电子邮件”表和System.Threading.Timer