gpt4 book ai didi

c# - .Net : Threadify heavy API calls

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

我有一个电子邮件队列,其中包含要发送的电子邮件。一个Web服务调用一个SOAP Web服务,该SOAP Web服务一个一个地处理队列。

我们使用外部供应商的REST API发送电子邮件。我的问题是,对此API的调用可能需要0.1毫秒至12秒钟的时间。我们向订阅我们通知的客户发送了数千封电子邮件,重要的是,在每个批次中,队列中的第一个与最后一个之间没有太多的延迟(理想情况下,它们将同时发送)。

我已经向供应商投诉,但是由于他们很烂,我很确定他们对此不会采取任何措施。

我可以通过某种方式线程化此过程,实例化对服务器的同时调用吗?该服务器也是我的Web服务器,因此我无法使用所有果汁。多少线程合适?这是一个好主意吗?一般管理这些线程的最佳方法是什么?

最佳答案

我会将电子邮件在数据库表中排队,并生成一个单独的Windows服务,该服务从表中读取数据并为每封电子邮件生成一个线程,最大线程数上限。该数据库还可以用于捕获吞吐时间。

您还应该找出供应商可以处理多少个同时Web服务请求。在电子邮件中进行密件抄送,以查明您同时进行的提交是否最终成为单线程传输。也许开始购买该供应商的替代产品(您确实说过他们很烂)。

如果您想花钱并从自己的服务器上分担工作量,可以将一批电子邮件发送到云服务(Amazon Web Services,Microsoft Azure或Google App Server),然后在云上产生一个将电子邮件喷洒到的过程。您的供应商同时进行。

您也可以直接从云发送电子邮件,至少可以通过Amazon发送。它们提供了默认限制,但是下面是有关如何删除限制的链接:http://aws.amazon.com/contact-us/ec2-email-limit-request/

关于c# - .Net : Threadify heavy API calls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1608332/

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