タグ

2017年9月30日のブックマーク (1件)

  • Go で並列数をうまいところ制御しながら並列に動くクローラー - Diary

    Go で並列数をうまいところ制御しながら並列に動くクローラー というもののサンプル。 並列に HTTP アクセスしてきてパースして title 要素を表示するというものです。 title 要素をパースしてくるのに使っているパッケージはこちらです。 今回は HTML のダウンロード => パース => 画面への出力処理 までを一塊として並列処理の単位にしています。 ですが、ここをさらに gorutine と channel で制御してダウンロードは 5 並列でやってパースは 20 並列でやって出力は 1 並列でやる、みたいなふうにもできるでしょう。今回は channel を単なるセマフォのように使っていますが、その場合は gorutine 間のやり取りに channel を使う方がシンプルに書けるでしょう(そしてそれがより Go らしいやり方でしょう)。 またダウンロード制御するにあたってホ