使用azure servicebus排队电子邮件

时间:2016-03-15 10:42:26

标签: email azure azureservicebus azure-servicebus-queues

我们刚将一些工作负载转移到我目前正在管理的azure上,我读了一些关于服务总线的内容,并想知道我是否可以使用它来排队电子邮件

使用自定义库托管在azure中的应用程序将其电子邮件发送到服务总线队列,其中一个或多个工作进程将从队列中选择消息并通过邮件中继服务发送。

这将使我的开发人员可以随时了解我正在使用的邮件中继服务的详细信息,并且我还可以在发送之前执行进一步的邮件处理,而无需开发人员更改其代码。

我的问题是,这是否可能,如果是的话,是否可取,在实施这样的解决方案时我需要注意什么。关于如何做的任何指示也将不胜感激

3 个答案:

答案 0 :(得分:3)

是的,将消息添加到Azure服务总线队列是一种合理的解决方案,后者将由应用程序检索,该应用程序根据排队消息中的详细信息发送电子邮件。这是使用微服务方法解耦各种应用程序的好方法,可以在单个应用程序的不同部分内,甚至在组织内的许多应用程序中使用电子邮件发送服务。

需要注意的一点是,Azure Service Bus Queue中的邮件大小确实具有最大大小限制。根据电子邮件中发送内容的长度,您需要在某处存储邮件的详细信息,可能是数据库或Azure表存储。然后,队列中的消息将包含一个标识符,例如GUID,可用于稍后在接收应用程序处理它以发送电子邮件时查找消息详细信息。无论队列中按摩的大小,电子邮件都可能会很长,所以使用这种方法可能是您的最佳选择,因此您不会在以后的实施中遇到问题。

答案 1 :(得分:1)

在不了解您的系统,要求,消息与排队需求的情况下,我会说下面的内容。

  • 如果您的应用程序需要进行消息传递,请继续使用Azure Service Bus排队电子邮件。
  • 如果答案为" no",请使用仅排队的内容:Azure存储队列。

答案 2 :(得分:0)

这是可能的,这是一个不错的选择。大多数电子邮件服务在其系统中使用队列。

您可以使用priority property队列。交易邮件>通知邮件>营销邮件,您可以提供从高到低的优先级。因为队列工作fifo和交易邮件不应该等待营销邮件。

在实现之前,您可以使用Labels区分消息。

如果您在某些尝试后无法发送电子邮件(Azure默认为10)。您应该将它移动到死队列azure服务总线为您执行此操作。但是,您应该使用deadqueue来处理此电子邮件。

相关问题