freenodeにrails-tokyoチャネルを作りましたということで、irc.freenode.netに#rails-tokyoチャネルを作ってみました。
ッザース!
早速JOINして下らない質問をしてみたところ、すぐ回答してもらえました。良い人だー!
質問:「sessionって普通どう消してますか?」
答え:「DBの場合はcronとかで普通に消すとのこと。」
14日前までのは消して、ついでにOPTIMIZEというのを用意してこれをcronで回すことにします。
script/dbmaintenance:
#!/usr/bin/env ruby
RAILS_ENV ||= "production"
require File.dirname(__FILE__) + '/../config/boot'
require RAILS_ROOT + '/config/environment'
con = ActiveRecord::Base.connection
con.execute "DELETE FROM sessions WHERE updated_at < '#{14.days.ago.to_s(:db)}'"
con.tables.each do |table|
con.execute "OPTIMIZE TABLE #{table}"
end
現行アプリだとショッピングカートみたいのがあるので結構溜まってました。
PHPだと言語自体にsession gcがあるからそういうのがあるのかと勘違いしてました。でもPHPのDebianパッケージ版はsession gc切ってcronで消してたから特に違和感は無いですね。
restful_authenticationだとsessionが使わないから不要?キャッシュ用途だとDBじゃ遅いから意味ないのかな。