API 由于限制和偏移而超时

API times out due to limit and offset

我正在尝试从我们客户的一个跑道实例中提取项目。它有大约 35k 条记录,所以我将限制和偏移量设置为 500

loop do
  current_offset_value = offset.next
  puts "LIMIT: #{LIMIT}, OFFSET: #{current_offset_value}"
  Podio::Item.find_by_filter_id(app_id, view_id, limit: LIMIT, remember: true, offset: offset.next).all.each do |item|
      yield item
  end
end

但是,代码在前两次调用后挂起并且returns超时错误

LIMIT: 500, OFFSET: 0
LIMIT: 500, OFFSET: 500
creates a CSV file from a table (FAILED - 1)

Failures:

SourceTableSync::LocalCsvDumper::CitrixPodio creates a CSV file from a table
 Failure/Error:
   Podio::Item.find_by_filter_id(app_id, view_id, limit: LIMIT, remember: true, offset: current_offset_value).all.each do |item|
     yield item
   end

 Faraday::TimeoutError:
   Net::ReadTimeout with #<TCPSocket:(closed)>

看起来 Podio API 在获取 500 个项目时超时,可能是您的项目很大或者与其他应用程序有某种关系,并且获取所有项目需要太多时间。

我会尝试一些较小的数字(例如 100 或 200)看看是否可行:)