0
我正在使用帶註銷超時的Authlogic。我需要做的是當用戶實際超時時記錄。我甚至試圖製作一個線程,通知用戶遠離User.logged_in
列表。 看來,當我把一個線程在那裏我得到2線程,而不是一個,所以我正在尋找一個更好的解決方案。Authlogic。記錄註銷超時
這樣做的最好方法是什麼?
我正在使用帶註銷超時的Authlogic。我需要做的是當用戶實際超時時記錄。我甚至試圖製作一個線程,通知用戶遠離User.logged_in
列表。 看來,當我把一個線程在那裏我得到2線程,而不是一個,所以我正在尋找一個更好的解決方案。Authlogic。記錄註銷超時
這樣做的最好方法是什麼?
我最終通過將以下在應用程序控制器的頂部固定我的線程。
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
對不起,我不似乎明白了爲什麼我的格式化搞砸(固定) –