【发布时间】:2013-05-13 03:39:57
【问题描述】:
我无法打印出我在 Twitter 上关注的人的列表。此代码在 250 处有效,但由于我关注了 320 个人,所以现在失败了。
失败说明: 代码请求超出推特限速。代码休眠到重置限制所需的时间,然后重试。
我认为它的编写方式只是不断重试相同的整个可拒绝请求,而不是从中断的地方继续。
MAX_ATTEMPTS = 3
num_attempts = 0
begin
num_attempts += 1
@client.friends.each do |user|
puts "#{user.screen_name}"
end
rescue Twitter::Error::TooManyRequests => error
if num_attempts <= MAX_ATTEMPTS
sleep error.rate_limit.reset_in
retry
else
raise
end
end
谢谢!
【问题讨论】:
-
"fails" 对软件问题的描述不充分。
-
你完全正确!对不起,这是我第一次。 :) 代码达到了 twitter 速率限制,特别是提供了异常“Error::TooManyRequests”。代码休眠,直到速率限制重置并再次尝试。然后它再次失败,再次等待,并重复,直到它放弃。