0
私は同じように動作しconnection_pool
ようなルビーために利用可能なスレッドプールの周りに見てきた:これは事実のみ任意で5つの同時フェッチ操作を実行しますRubyのスレッドプール
pool = ConnectionPool.new(size: 5, timeout: 20) do
@user
end
results = ['foo', 'bar', 'a', 'z'].map do |thing|
Thread.new do
pool.with do |user|
user.fetch(thing)
end
end
end.map(&:join).map(&:value)
時間。
私の使用例では、1秒あたり5コールのレート制限を課すAPIが含まれているため、時間ウィンドウの相関がない通常の同時の制限は役に立ちません。
どうすればよいですか?
操作を高速化するために接続プールを使用します。故意に遅くする必要がある場合は、組み込みのレートリミッタまたはバックオフ間隔の再試行メカニズムを使用して順次キューが必要です。 – tadman