我有两个网络api
现在,我调用发布API,然后在循环中调用GetStatus API,服务器装载了太多的GetStatus API请求。每隔10-15毫秒就会调用GetStatus api。
如何避免这种情况?任何更好的解决方案都应该受到高度赞赏。
发布于 2020-08-20 06:36:31
好吧..。你应该在循环中等着..。
理想情况下,您使用的是异步,因此您可以:
ApiStatus status = null;
do {
var status = await api.GetStatus();
await Task.Deplay(TimeSpan.FromSeconds(5), cancellationToken);
} while (status == ApiStatus.Running);如果不是这样的话;
while (!_stopEvent.WaitOne(TimeSpan.FromSeconds(5)){
var status = api.GetStatus();
if (status != ApiStatus.Running) break;
}至少,天真的实现是你不应该做的,但是为了给你展示最简单的情况.
while (true){
var status = api.GetStatus();
if (status != ApiStatus.Running) break;
Thread.Sleep(5000);
}https://stackoverflow.com/questions/63498389
复制相似问题