【发布时间】:2015-12-10 14:44:52
【问题描述】:
我需要调用一个 JSON api,它每秒只允许有限数量的请求,以确保没有来自特定 IP 的 DDOS 发生。 请求需要多长时间并不重要,因为这将作为一个自动化过程在一夜之间完成,但是我需要在每个请求之间暂停以确保我的 IP 不会暂时被列入黑名单。
现在,在我完成 Thread.Sleep(1000) 以确保每秒只发送 1 个请求之前,但在 asp.net vNext Thread.Sleep 不起作用/不存在,所以我不能这样做。
是否有替代或更好的方法来处理我需要做的事情? 没有批量 API,因此必须一次完成 1 个请求。
提前致谢。
【问题讨论】:
-
您是否确定 Thread.Sleep 不存在,而不仅仅是需要特定的依赖关系?顺便说一句,如果您正在编写异步代码,您应该在问题中这样说,因为它会显着影响您如何执行此操作。
-
好吧,我添加了 system.therading 但类 Thread 下不存在。 IE。 System.Threading.Thread 在 asp.net vnext 中不存在,因此除非它已被移动或我缺少依赖项,否则默认情况下它在我之前调用它的位置中丢失。这也不是当前异步的。
-
您缺少依赖项-有关详细信息,请参阅我的答案。一般来说,您不应该仅仅因为它们不是开箱即用的东西就认为它们丢失了——在 DNX 中有 很多 依赖项可供使用。
-
我不只是假设它丢失了,这就是为什么我添加不起作用/不存在,因为我不确定并且无法在网上找到任何有关它的信息。谢谢你指出,如果它不是异步的,我应该使用 thread.sleep。从来没有为这样的事情做过异步,所以这是下一步!谢谢。
-
您确实假设:您声明“在 asp.net vNext Thread.Sleep 中不起作用/不存在,所以我不能这样做” - 那不是真的。您做了一个假设它不起作用或不存在,而不是询问是否是这种情况。
标签: c# asp.net asp.net-mvc multithreading asp.net-core-mvc