gpt4 book ai didi

c# - Twilio API - 发送短信时请求过多

转载 作者:行者123 更新时间:2023-12-05 03:50:36 24 4
gpt4 key购买 nike

我知道这个问题已经被问过几次了,但我正在尝试找出我的确切问题可能是什么。

我有一个 C# 应用程序,它对要发送的消息进行排队(使用 Azure 存储队列),并由 Azure Webjob 处理。我们正在使用twilio-csharp nuget package发送消息。

发送消息的代码非常简单:

MessageResource.Create(
body: message.Message,
from: new Twilio.Types.PhoneNumber(TwilioFromNumber),
to: new Twilio.Types.PhoneNumber(message.SendToPhoneNumber));

默认情况下,Webjob 一次最多处理 16 条消息,但为了解决这个问题,我们设置了:

context.BatchSize = 2;
context.NewBatchThreshold = 0;

因此,在任何给定点,我们一次不会发出超过 2 个请求。

即使阈值如此低,我们仍然会定期在日志中看到这些错误:

Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: TextMessageFunctions.SendTextMessage ---> Twilio.Exceptions.ApiException: Too Many Requestsat Twilio.Clients.TwilioRestClient.ProcessResponse(Response response)

其他一些想法:

  1. answer on this question ,来自 Twilio 开发人员传播者,建议 REST API 的并发限制默认为 100。这仍然是真的吗?或者我可以通过我的帐户检查这一点吗?我们不可能接近 100 条。我们一次排队的消息从来不会超过 20-30 条,这已经是极端情况了。
  2. 我们使用美国免费电话号码进行发送According to Twilio ,我们应该能够在其一端排队 43,200 条消息。

同一篇文章说:

Notice: You can send messages to Twilio at a rapid rate, as long as the requests do not max out Twilio's REST API concurrency limit.

这让我觉得我做错了什么,因为“快速速率”肯定可以一次超过 2 个请求(而且我仍然想知道上面提到的 100 个速率)。我们真的不能通过 2 个并发请求调用 Twilio API 而不会出现此错误吗?

最佳答案

这里是 Twilio 开发者布道者。

最近并发限制发生了一些变化,对您产生了影响。新帐户现在收到的 POST 请求并发限额要低得多,低至 1 个并发请求。这是为了打击最近增加的欺诈事件。

我确信您的事件不是欺诈性的,因此您应该执行以下操作:

  • 目前将批量大小减少至 1,以便您一次仅向 Twilio API 发出 1 个请求。
  • 添加代码以捕获错误,如果错误是 429 响应,则重新排队作业以便稍后发生(如果可能,使用指数回退)
  • 联系 Twilio Sales与他们讨论您的用例并请求增加并发限制

我确信此限制不会成为我们所面临问题的长期解决方案,对于您遇到的问题,我深感抱歉。

关于c# - Twilio API - 发送短信时请求过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63396091/

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