节流以限制吞吐量
throttling to limit throughput
所以现在我正在想办法解决这个问题。
我需要调用外部资源 (API) 并将对象集合传递给它。
那么假设,我有一个这样的发件人:
public class Sender{
/// Send an message to an external api
public async Task Send(object[] objectCollection){
}
}
问题是,API 端存在吞吐量限制。例如(每秒 5 个对象)。所以我需要在我这边实现某种等待机制(节流器),它将与单个应用程序内的并发方法调用一起工作。
- 是否已经有 .NET 节流器,还是我必须自己实现它?
- 您将如何实施每秒 5 个对象的规则?
我的想法是简单地使用信号量,但这只会限制并发性而不会考虑时间限制。
感谢您的建议。
所以最后,我用了window sliding technique。
所以现在我正在想办法解决这个问题。 我需要调用外部资源 (API) 并将对象集合传递给它。
那么假设,我有一个这样的发件人:
public class Sender{
/// Send an message to an external api
public async Task Send(object[] objectCollection){
}
}
问题是,API 端存在吞吐量限制。例如(每秒 5 个对象)。所以我需要在我这边实现某种等待机制(节流器),它将与单个应用程序内的并发方法调用一起工作。
- 是否已经有 .NET 节流器,还是我必须自己实现它?
- 您将如何实施每秒 5 个对象的规则?
我的想法是简单地使用信号量,但这只会限制并发性而不会考虑时间限制。
感谢您的建议。
所以最后,我用了window sliding technique。