私が何かをすると言いましょう
arrs = Article.where(:body => nil)
arrs.count を 900 としましょう。
arrs.each do |ar|
ar.delay.download_via_diffbot #a method that takes some time, does some http, and writes a non-nil value to ar.body
end
ここで、ログを見て、ジョブを実行する ~5 dyno で数分待ち、もう一度カウントを行います: arrs.count is now ~800
それで、900 までの仕事をするように従業員に言ったと思っていたのに、残りの 800 はどうなったのですか?
私は〜100個のHTTPリクエストしか行っていないことを確認できます.APIレポートはこれを示しています.また、ログを見るだけで、900個のジョブが発生していないことが十分にわかります.
私は Delayed::Job.count に従っていますが、最初に数百のジョブがあるにもかかわらず、そのループから約 100 しか作成されません。
このように多くの同時ジョブを間違って作成しているのでしょうか? 一度に多くのジョブを作成する適切な方法は何ですか?