新手问题 请问怎么控制发送 API 请求的速度?

cqcn1991 · 2015年07月03日 · 最后由 cqcn1991 回复于 2015年07月05日 · 2350 次阅读

最近在调用豆瓣的电影 API,要求40/每分钟 开始以为完全不会超,就没管 结果直接就被封 IP 了...

想请教一下,是直接每个 request 之前sleep 1.0吗?还是有什么 Best practice 之类?比如可以直接限制 request 为 40/分钟? 谢谢!

redis rate

在 stackoverflow 上的看来是你。其实我是过来想问大神,能不能用 sidekiq 解决这个问题,每两秒执行一次 request 的 worker,这样可不可以。只是 sidekiq 是异步队列,不知道满不满足。

@shallmentmo 完全可以啊,看到 PO 主说的 sleep 就想到了 sidekiq

#2 楼 @shallmentmo ....被 downvote 了 2 下...我现在直接是计算达到了 40 个 query 然后就 sleep 了。。。。

#4 楼 @cqcn1991 ,看到被 downvote 了,你是有很多关键词,然后调用豆瓣 api?可以参考 sidekiq 来做

#3 楼 这个要看场景吧,总不能访问量很大,然后一个请求过来要等下一秒才能调用豆瓣 api 吧,好像有点不靠谱

#5 楼 @shallmentmo 不是..我就是调用豆瓣的电影 API,根据 title 来查电影资料 只是要查的量比较大...

Sidekiq 和 EventMachine 都可以 不要用 sleep 在服务器代码里用 sleep 是很蠢的行为 真的、、、

难道豆瓣的 API 没有返回剩余可调用次数之类的信息?

#9 楼 @zlx_star 没有注意…调用的公共接口…

需要 登录 后方可回复, 如果你还没有账号请 注册新账号