お世話になります。
アプリケーションサーバを冗長化したときとか、
セッションストレージにRedisを使うことがあると思うのですが、
このときに fuel/app/config/session.php で
> ‘expire_on_close’ => true,
にして、ブラウザを立ち上げっぱなしで、2時間以上放置したあとに
セッションのデータが消えてしまうということがありました。
よくよく調べてみると fuel/core の Session_Redis クラス (classes/session/redis.php)
でRedisにデータを書き込むときに、expire() をしてredis上での有効期限を設定しているようです。
このとき設定される有効期限は config/session.php の ‘expiration_time' の値のようです。
そのため、expiration_time の初期値 7200sec(2時間) で redis 上からセッションデータが消えてしまった
ため、冒頭のように2時間以上放置したあとにセッションデータが消えたようです。
今回は expiration_time を12時間に延長して対応しましたが、 ‘expire_on_close’ が true だったときは
redis側の有効期限を設定しないようにするとかがいいんじゃないかと思ったのですが、
みなさまはどのようにお考えでしょうか?
とおる
toru...@gmail.com
http://tamulab.jp/
http://code.ttsoft.jp/
https://github.com/torut