Authlogic.Время ожидания выхода из системы - PullRequest
0 голосов
/ 19 июля 2011

Я использую Authlogic с таймаутом выхода из системы.Что мне нужно сделать, это войти, когда пользователь фактически истек тайм-аут.Я зашел так далеко, что попытался создать поток, который будет замечать пользователей, которые уходят из списка User.logged_in.Кажется, когда я помещаю туда поток, я получаю 2 потока, а не один, поэтому я ищу лучшее решение.

Каков наилучший способ сделать это?

1 Ответ

0 голосов
/ 20 июля 2011

В итоге я исправил свою многопоточность, поместив в верхнюю часть контроллера приложения следующее:

 def check_logout
     previous_user = {}
     loop {
         x = User.logged_in
         active_user = {}
         x.each { |a|
             active_user[a[:login]] = a[:login]
             previous_user[a[:login]] = a[:login]
         }
         puts "active = #{active_user}"  
         previous_user.each { |key,value|
         if active_user[key] == nil then
             puts "Login timeout for #{value}"  
             InternalLog.notify_msg("Login timeout for #{value}")
             previous_user.delete(key)
         end
         }
       sleep(30)      
     }
     rescue => e0
         puts "WORKER THREAD RESCUE"
         puts e0
         exit     end



    if $BACKGROUND_THREAD == nil then
        $BACKGROUND_THREAD = Thread.new do
            check_logout
        end 
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...