gpt4 book ai didi

email - 使用 SendGrid Mail API 确保最多一次语义

转载 作者:行者123 更新时间:2023-12-05 04:57:26 24 4
gpt4 key购买 nike

我有一个 [Azure 存储] 队列,用于放置要发送的电子邮件消息。然后,有一个单独的服务监视队列并使用某些服务发送电子邮件。在这种特殊情况下,我使用的是 SendGrid。

因此,理论上,如果发件人在成功调用 SendGrid 邮件发送 API ( https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html ) 后立即崩溃,邮件将返回到队列并稍后重试。这可能会导致同一封电子邮件被多次发送,这对于某些类型的电子邮件来说真的很烦人。

避免这种情况的正常方法是为 Send API 提供某种幂等键。然后被调用方可以确保操作最多执行一次。

在仔细阅读 SendGrid 文档和谷歌搜索后,我找不到任何方法来实现我在这里寻找的东西(最多一次语义)。有什么想法吗?

最佳答案

如果 API 本身不支持幂等键,我认为您的选择是有限的。

您可以修改您的电子邮件发送服务以在调用发送 API 之前出队和提交。这样,如果服务发送消息失败,则不会重试,因为它已从队列中删除,最多发送一次。

此外,您可以对来自 SendGrid 的特定 HTTP 响应(例如 429 和 5xx)实现一些有限的重试,您确定消息未发送并且重试可能有用 - 这将保持“最多一次”,同时降低失败率速度。可能这应该包括每次尝试之间的一些退避时间。

关于email - 使用 SendGrid Mail API 确保最多一次语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64425089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com