English document is available on metacpan!
Plack::Middleware::Session::Simpleをリリースしました。Plack::Middleware::Session(Store::Cache & State::Cookie)と互換性を保ちながら、効率よく動作することを狙っています。
- 必要なときに必要なだけ Set-Cookie ヘッダを発行する
- 必要なときだけストレージにアクセスする
弊社のようなハイトラフィックなサービスを運営している場合には、できるだけリソースをケチりたいので、そういう思想なものが必要となった。互換性があるので負荷が低いところで使っても問題が起きないと思う。
使い方
Plack::Middleware::Sessionで以下のように設定していたなら、
my $cache = Cache::Memory::Simple->new; builder { enable 'Session', store => Plack::Session::Store::Cache->new( cache => $cache, ), state => Plack::Session::State::Cookie->new( session_key => 'myapp_session' ); $app }
Session::Simpleではこうなる。Plack::Session::(Store|State)がなくなり、一部のオプションの名前が変更になっている。
builder { enable 'Session::Simple', store => $cache, cookie_name => 'myapp_session', keep_empty => 0 # 0にすると空のセッションを保存しない&Cookieを送出しない ; $app };
キャッシュに保存する内容は同じなので、ミドルウェアの入れ替えによってセッションが切れたりすることはない。