HTTPoisonのプーリング
HTTPクライアントにHTTPoisonを利用してみた。
同時実行数を増やすと50コネクション以上のコネクションは作成されないことがわかった。コードを見てみると、内部ではhackneyが使われていることがわかった。
hackney のドキュメントをみると、何も指定がなければデフォルトのプールが利用されるようだ(これ?)。
変更するためにはどうしたらよいかを調べた。
プールの数を変更する方法
名前をつけてプールを開始する。
poolname = :mypool options = [max_connections: 10] :hackney_pool.start_pool(poolname, options)
HTTPリクエストを送る際のパラメータで、[hackney: [pool: :mypool]]
を渡す。
HTTPoison.get!("http://localhost:4001", %{}, hackney: [pool: :mypool])
これでデフォルトではなく、自分の希望通りのプールサイズになる。
調べた時のライブラリのバージョン
- httpoison, 0.7.2
- hackney, 1.3.1