2

処理が必要なオブジェクトの配列があります。API を介してサードパーティのシステムに送信する必要がありますが、一度に 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 個のチャンクにバッチ処理する方法が必要です。アドバイスをいただければ幸いです。

4

1 に答える 1

5

Enumerable#each_slice救助に来ます:

myUserArray.each_slice(100) do |slice|
  intercom.users.submit_bulk_job(create_items: slice)
end
于 2016-08-11T08:52:34.150 に答える