rails 如何定时删除数据库里面的session

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天前的