【问题标题】:Queuing Emails in MVC Application在 MVC 应用程序中排队电子邮件
【发布时间】:2019-05-04 02:36:49
【问题描述】:

我是为我们组织构建专有学习管理系统的团队的一员。当用户注册在线课程时,我们会向用户发送一封电子邮件,其中包含有关登录以参加课程的说明。当大量注册用户时,显然这会导致一些性能问题。我正在研究开发一个用于排队电子邮件然后异步发送它们的框架。

我们的平台通过 Azure Web 应用程序和 Azure SQL 数据库进行部署。它是用 .NET MVC 编写的,我们通过 SMTP 发送电子邮件。

是否有人对最佳做法或实现此目标的最有效方法有任何建议?我研究了 Azure 服务总线、第三方开源解决方案(例如 Hangfire),并编写了一个标准控制台应用程序来处理要发送的电子邮件的数据库表。

【问题讨论】:

    标签: .net email model-view-controller queuing


    【解决方案1】:

    你走在正确的道路上。 Azure 服务总线和 Azure Functions 将满足您的需求。流程将是:

    1. 用户注册
    2. 消息发送到服务总线队列
    3. Azure 函数触发器处理队列消息并发送电子邮件。

    Azure Service Bus bindings for Azure Functions

    Get started with Service Bus queues

    如果您决定使用 Hangfire,最好使用 Hangfire.Azure.ServiceBusQueue 包。

    添加了对通过 Hangfire 的 SQL 使用 Azure 服务总线队列的支持 存储提供程序以减少延迟并消除轮询 新工作的数据库。

    所有作业数据继续在 SQL 存储中存储和维护, 但轮询被删除,有利于通过 服务总线。

    【讨论】:

      猜你喜欢
      • 2016-04-30
      • 2018-08-22
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多