Phoenix で Poolboy を使ってコネクション(プロセス)プーリング
Poolboy を使ってコネクションプーリングができるようにする。接続先は memcached。
サンプルのhello_phoenixを元にした。手を加えたファイルだけ以下に貼っておく (ちなみに Phoenix は v1.0.0)。
実行してみと、、、
% curl localhost:4000 {"val":"Hello Phoenix"}
成功。
メモ
- mcd はプロセスを生成した時点ではmemcached と接続されていない。ので、start_link してすぐに使おうとすると、結果が取れない。
max_overflow
の値を0以上にすると、プールしている数がsize
に達していてもさらにそこからmax_overflow
分だけプロセスを生成する。max_overflow
分のプロセスは必要になった時点で生成されるので、01 で書いたとおり、コネクションが確立されていないプロセスが渡される時がある(というか、全てそうだった)。