Ruby 批处理数组用于对讲

Posted

技术标签:

【中文标题】Ruby 批处理数组用于对讲【英文标题】:Ruby Batch Processing an Array for Intercom 【发布时间】:2016-12-17 21:42:46 【问题描述】:

我有一个需要处理的对象数组。我需要通过他们的 API 将它们发送到第 3 方系统,这一次只允许我提交 100 个对象。

假设我有一个这样的对象数组

myUserArray = [first_name: 'Jon', last_name: 'Snow', first_name: 'Sansa', last_name: 'Stark'...]

我最终像这样将其发送到他们的 API

intercom.users.submit_bulk_job(create_items: myUserArray)

这在对象数量小于 100 时工作正常,但在大于 100 时由于它们的速率限制而引发错误,这很公平。我有 5000 个对象要处理,所以我需要一种方法将 myUserArray 分批成 100 个块,直到它们全部完成。非常感谢任何建议!

【问题讨论】:

【参考方案1】:

Enumerable#each_slice 来救援:

myUserArray.each_slice(100) do |slice|
  intercom.users.submit_bulk_job(create_items: slice)
end

【讨论】:

以上是关于Ruby 批处理数组用于对讲的主要内容,如果未能解决你的问题,请参考以下文章

将 Azure SSL 证书用于对讲帮助中心

Ruby 异常

解决方案| 快对讲综合调度系统

雷林鹏分享:Ruby 异常

在 Ruby 中将数组输出到 CSV

使用Fiddle将RUBY数组传递给C DLL