我正在使用异步 Play WS Scala API 来查询 RESTful 服务。我想知道如何处理List要通过调用的包含请求 URL WSClient,但每秒不超过一个请求(该服务允许每个客户端每秒“仅”1 个请求)。从逻辑的角度来看,这个想法是从列表中获取一个元素 (URL),发出请求,然后在继续处理列表中的下一个元素之前等待一段时间。
Thread.sleep在像 Play 这样的非阻塞和异步框架中使用 good old肯定是一个坏主意。ScheduledThreadPoolExecutor需要生成新线程的类似方法或其他方法,情况可能也是如此。如何在不对 Play 的异步和“尽可能少线程”性质产生负面影响的情况下限制请求率?