【问题标题】:Php, 1 curl per secondPhp,每秒 1 次卷曲
【发布时间】:2017-04-10 21:04:09
【问题描述】:

我使用的是 Amazon API 产品,该产品限制为每秒一个请求,使用相同的 IP 地址。 我可以定义每个请求在 1 秒的距离内发出的 php curl 吗? (全球)

【问题讨论】:

  • 这是命令行应用程序还是网络服务器?是否有多个工人/进程?

标签: php curl amazon-product-api


【解决方案1】:

您应该使用sleep(1); 函数在循环中进行延迟

【讨论】:

  • !我必须全局设置它。如果我有 10 个访问者,呼叫不应重叠,因为亚马逊会监视 IP
  • 不不!使用缓存或数据库来节省检查的最后请求时间
  • !这不是微不足道的,我们应该管理队列和睡眠。确定有设置?
【解决方案2】:

如果您需要全局解决方案,可以使用队列(如 Redis 等)。您处理访问者的脚本只需将请求放入该队列。其他服务每秒读取一次此队列并发送 cURL 请求。

以同样的方式,您可以将数据库用作队列:一个服务将记录放入数据库,其他服务每秒读取一次 DB 以获取下一条记录并执行 cURL 请求。

【讨论】:

    【解决方案3】:

    将用户的所有请求保存在队列中。您可以使用 db(mysql 等)或内存缓存(redis)。然后延迟1秒一个一个地处理请求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 2016-01-23
      • 1970-01-01
      • 2016-08-12
      相关资源
      最近更新 更多