45 lines
1.1 KiB
Ruby
Executable file
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
|