【问题标题】:How to call another controller action async?如何异步调用另一个控制器动作?
【发布时间】:2011-07-01 02:32:57
【问题描述】:

我正在使用 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?

【问题讨论】:

    标签: c# email asp.net-mvc-3 asynchronous actionmailer


    【解决方案1】:

    为什么不创建一个继承自 AsyncController 的新基类?

    对于简单的火灾忘记你可以使用ThreadPool.QueueUserWorkItem。

    就个人而言,我更喜欢将电子邮件排队并让一个单独的后台线程处理该队列。这可以像数据库中的“电子邮件”表和System.Threading.Timer 一样简单

    【讨论】:

    • ActionMailer.net 不是我自己的类让它们继承自另一个基类
    猜你喜欢
    • 1970-01-01
    • 2011-08-11
    • 2010-09-29
    • 2013-05-28
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2013-06-10
    相关资源
    最近更新 更多