2

我正在调用 TwitterGET friends/idsGET users/lookup资源。在我考虑速率限制之前,它们工作得很好。这是工作代码的示例:

def followers_ids(screen_name)
  cursor = "-1"
  followers_ids = []
  while cursor != 0 do
    followers = Twitter.follower_ids(screen_name, :cursor => cursor)

    cursor = followers.next_cursor
    followers_ids << followers.ids
  end
  followers_ids.flatten!
  followers_ids
end

当我像这样将 asleep放入 while 循环时:

while cursor != 0 do
  followers = Twitter.follower_ids(screen_name, :cursor => cursor)

  cursor = followers.next_cursor
  followers_ids << followers.ids
  sleep(60)
end

我在不同的时间得到不同的错误集。

C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/net/http.rb:799in 'connect': execution expired (Twitter::Error::ClientError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/net/http.rb:799:in 'block in connect'
..
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/faraday-0.8.7/lib/faraday/adapter/net_http.rb:73:in 'perform_request'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/faraday-0.8.7/lib/faraday/adapter/net_http.rb:38:in 'call'

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/twitter-4.6.2/lib/twitter/response/raise_error.rb:21:in 'on_complete': Twitter is down or being upgraded (Twitter::Error:BadGateway)
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/faraday-0.8.7/lib/faraday/response.rb:9:in 'block in call'
..

有人知道会发生什么吗?我在某处读到过,在睡觉时,您的程序将忽略所有消息。这可能是其中的一部分吗?有没有更好的方法可以做到这一点?

4

0 回答 0