AtCoderProblems icon indicating copy to clipboard operation
AtCoderProblems copied to clipboard

クローラーを統合したい

Open kenkoooo opened this issue 3 years ago • 1 comments

現状では異なる4つのクロール戦略について、それぞれクローラーがあります。

  • crawl_all_submissions
  • crawl_for_virtual_contests
  • crawl_recent_submissions
  • crawl_from_new_contests

ECS でそれぞれについてインスタンスを立てていますが、もし単一の実行可能ファイルでできれば管理が楽になります。

考えているのは message queue を使う方法で、各クローラーは以下のように動きます。

  • クローラーは (クロール戦略, その戦略の状態, クロールするコンテスト, クロールするページ) をキューから受け取る。
  • 1ページクロールする。
  • 状態を更新し、次にクロールするページを取得する。
  • (クロール戦略, 更新したその戦略の状態, 更新したクロールするコンテスト, 更新したクロールするページ) をキューに入れる。

kenkoooo avatar Apr 19 '21 04:04 kenkoooo

Redis の LPUSH/BRPOP でジョブキューらしいことができるので、クライアントは Redis のリストから BRPOP し続けて、適当なタイミングで LPUSH するやつが入れば良い感じがします。

kenkoooo avatar May 22 '21 06:05 kenkoooo