【发布时间】:2012-04-06 11:55:14
【问题描述】:
我目前有一个脚本,它部分地向外部站点发送请求。外部站点对使用 API 有一个简单的 API 限制,即每 30 秒 50 个,如果它向主站点发送特定类型的请求(就像我的脚本一样),则为每分钟 3 个。现在,对于使用该脚本的一位用户来说,这很容易解决。但是,多个用户将同时使用该脚本,如果有足够多的用户同时使用它,则限制将超出。我试图限制多用户请求,以防止我的服务器发送超过限制,即使每个用户都不是。我正在想办法做到这一点。确保服务器永远不会向外部站点发送太多请求。有没有办法做到这一点?
【问题讨论】:
-
使用一些全局同步标志,例如
memcache记录或信号量:php.net/manual/en/book.sem.php -
将请求保存在数据库中。使用 cron 脚本在外部站点每分钟触发 3 次。
-
或者更好的是使用真正的排队机制。
标签: php api external throttling