openstreetmap-website/lib/daemons/session_cleanup.rb
2007-06-14 23:09:07 +00:00

45 lines
1.1 KiB
Ruby
Executable file

#!/usr/bin/env ruby
#You might want to change this
#ENV["RAILS_ENV"] ||= "development"
require File.dirname(__FILE__) + "/../../config/environment"
require 'pstore'
terminated = false
session_path = ActionController::Base.session_options[:tmpdir]
def expire_session(name)
ActiveRecord::Base.logger.info("Expiring session #{File.basename(name)}")
FileUtils.rm_f(name)
end
while (true) do
Dir.foreach(session_path) do |session_name|
if session_name =~ /^ruby_sess\./
session_name = session_path + "/" + session_name
session = PStore.new(session_name)
session.transaction do |session|
session_hash = session['hash']
if session_hash
session_stat = File::Stat.new(session_name)
puts session_hash[:token]
if session_hash[:token] and User.find_by_token(session_hash[:token])
# expire_session(session_name) if session_stat.mtime < 1.day.ago
else
expire_session(session_name) if session_stat.mtime < 1.hour.ago
end
else
expire_session(session_name)
end
end
end
end
sleep 15.minutes
end