2011-07-19 17 views
0

私はログアウトタイムアウトでAuthlogicを使用しています。私がする必要があるのは、ユーザーが実際にタイムアウトしたときのログです。私はこれまで、User.logged_inリストから離れたユーザーに通知するスレッドを作成しようとしました。 私はそこにスレッドを置くと、2つのスレッドが1つではなく、より良い解決策を探しているようです。Authlogic。ログアウトタイムアウトをログに記録する

これを行うにはどうすればよいでしょうか?

答えて

0

私は、アプリケーションのコントローラの先頭に次を置くことによって、私のスレッドを固定してしまった:

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 
+0

私はいけない申し訳ありませんが、私のフォーマットが台無しにされた理由を理解しているようです(固定)。 –

関連する問題