如何清除 Rails 会话表 [英] How to clear rails sessions table

查看:48
本文介绍了如何清除 Rails 会话表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用活动记录存储作为 Rails 会话存储.

I use active record store for rails sessions store.

在很短的时间内,sessions 表的大小增加了很多.这些会话行在一段时间后如何转储.还是应该每 24 小时手动清除一次?

Over just a short time, the size of sessions table has increased a lot. How are these session rows dumped after a certain period of time. Or should I manually clear them once in 24 hours?

推荐答案

一篇关于您的问题的好博文:http://blog.brightbox.co.uk/posts/clearing-out-rails-sessions

A good blog post about your issue : http://blog.brightbox.co.uk/posts/clearing-out-rails-sessions

解决方案是创建一个自定义的 rake 任务:

The solution is to create a custom rake task:

task :clear_expired_sessions => :environment do
    sql = 'DELETE FROM sessions WHERE updated_at < DATE_SUB(NOW(), INTERVAL 1 DAY);'
    ActiveRecord::Base.connection.execute(sql)
end

...并每天通过 cron 作业运行它.

... and run it every day with a cron job.

这篇关于如何清除 Rails 会话表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆