我试图获得所有用户的关注者ID(75K +)而不达到速率限制。我想你可以在光标上放一个睡眠方法,以防止每15分钟超过15次呼叫。知道怎么做吗?提前致谢。 :)
答案 0 :(得分:0)
我猜您正在使用twitter
gem与Twitter API进行交互。你的维基的one中描述了完整的场景:
follower_ids = client.follower_ids('justinbieber')
begin
follower_ids.to_a
rescue Twitter::Error::TooManyRequests => error
# NOTE: Your process could go to sleep for up to 15 minutes but if you
# retry any sooner, it will almost certainly fail with the same exception.
sleep error.rate_limit.reset_in + 1
retry
end
我们的想法是,如果达到了费率限制,只需sleep
一段时间,然后retry
API调用。
如果您想完全避免速率限制,可以每隔limit - 1
秒从返回的游标中获取x
个元素。在你的情况下,取15个元素,然后睡15分钟。这是一个例子:
follower_ids = client.follower_ids('justinbieber')
loop do
follower_ids.take(15)
break if follower_ids.last?
sleep 15 * 60 # 15 minutes
end