rails 如何定时删除数据库里面的session
问题描述:
我把一个ror项目的session保存到了数据库中,要如何做才能删除超过规定时间的session呢
答
N 久之前写过一个
[code="ruby"]
namespace :db do
namespace :sessions do
desc "Agide rake db:sessions:timeclear DAY=1 :Clear the sessions table where update before N day"
task :timeclear => :environment do
d = (ENV['DAY']).to_i
session_table = 'session'
session_table = Inflector.pluralize(session_table) if ActiveRecord::Base.pluralize_table_names
sql = "DELETE FROM #{session_table} where updated_at <= \'#{d.days.ago.to_s(:db)}\'"
puts "Run"
puts sql
ActiveRecord::Base.connection.execute sql
end
end
end
[/code]
答
rake db:sessions:timeclear DAY=7
就是删除7天前的