ActiveJob と 1 つの Sidekiq キューを使用して、約 20 ~ 30 の異なる Web サイトからデータを非同期的にスクレイピングしていますdefault
。
現在、追加されたジョブはすぐに開始され、私がスクレイピングしているホストを叩き出しています。これらの Web サイトにもっと敬意を持ってアクセスしたいのですが、ActiveJob/Sidekiq の設定方法がよくわかりません。
私のアイデアのシナリオは、次のことを実現します。
- 共通ソースを対象とするジョブは、連続するジョブの間に少なくとも 30 秒待機する必要があります
- 差分ソースを対象とするジョブは並行して実行できます
- 同一のジョブをキューに入れようとする試みは無視する必要があります。つまり、ジョブをキューに入れようとするときは、ジョブが既に存在するかどうかを確認し、追加しないでください。
- 再試行ジョブは同じ基準に従う必要があります
ありがとうございました!