レート制限
batchSize で同時実行数を制限する
Section titled “batchSize で同時実行数を制限する”batchSize は同時に実行するタスクの数です。次のバッチは、現在のバッチのタスクがすべて完了してから始まります。
// API 呼び出しは同時に最大 5 件await batchProcess(userIds, async (userId) => { return await fetchUserDataFromAPI(userId)}, { batchSize: 5 })メモリや CPU の使用量を抑えたい場合にも同じオプションが使えます。
// メモリ問題を避けるため 10 件ずつ処理するawait batchProcess(largeDataset, async (data) => { return await processHeavyOperation(data)}, { batchSize: 10 })delayBetweenBatches でリクエスト間隔を空ける
Section titled “delayBetweenBatches でリクエスト間隔を空ける”delayBetweenBatches は、最初のバッチを除く各バッチの開始前に、指定したミリ秒だけ待機します。
// 5 件ずつ処理し、バッチ間で 1 秒待つawait batchProcess( apiRequests, async (request) => await fetch(request.url), { batchSize: 5, delayBetweenBatches: 1000 })arrayBatch で配列を分割する
Section titled “arrayBatch で配列を分割する”配列を分割するだけなら、arrayBatch を直接使えます。
import { arrayBatch } from 'chunk-process'
arrayBatch([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3)// [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]batchSize が正の整数でない場合、arrayBatch は例外を投げます。