【发布时间】:2017-04-10 21:04:09
【问题描述】:
我使用的是 Amazon API 产品,该产品限制为每秒一个请求,使用相同的 IP 地址。 我可以定义每个请求在 1 秒的距离内发出的 php curl 吗? (全球)
【问题讨论】:
-
这是命令行应用程序还是网络服务器?是否有多个工人/进程?
标签: php curl amazon-product-api
我使用的是 Amazon API 产品,该产品限制为每秒一个请求,使用相同的 IP 地址。 我可以定义每个请求在 1 秒的距离内发出的 php curl 吗? (全球)
【问题讨论】:
标签: php curl amazon-product-api
您应该使用sleep(1); 函数在循环中进行延迟
【讨论】:
如果您需要全局解决方案,可以使用队列(如 Redis 等)。您处理访问者的脚本只需将请求放入该队列。其他服务每秒读取一次此队列并发送 cURL 请求。
以同样的方式,您可以将数据库用作队列:一个服务将记录放入数据库,其他服务每秒读取一次 DB 以获取下一条记录并执行 cURL 请求。
【讨论】:
将用户的所有请求保存在队列中。您可以使用 db(mysql 等)或内存缓存(redis)。然后延迟1秒一个一个地处理请求
【讨论】: