我有一个后台工作,抓住用户的Facebook朋友。
我希望每次登录用户启动新的浏览器会话时都会触发此后台作业。我不确定关于什么构成"新"的技术定义? Rails的会话,但理想情况是,一旦用户在一段时间不活动后点击该网站(例如,自上次访问后> 30分钟),它就会触发。
如何在Rails中检测这样的新会话?感谢任何帮助。
答案 0 :(得分:3)
这是我能解决的最好方法。我正在使用会话变量。我的application_controller中有一个带有before_filter的方法。似乎工作得很好,但我注意到有一些特殊的东西(例如,Pusher)重置会话变量,所以如果使用这个解决方案肯定会监控。如果有人有更好的解决方案,我会全力以赴。
def call_set_facebook_friends
if session[:new_session] == nil && signed_in?
current_user.background_set_facebook_friends
session[:new_session] = true
end
end
答案 1 :(得分:0)
如果您使用的是Devise,则last_sign_in_at
表中有一列users
。您的后台作业可以使用它来检查用户最近是否访问过您的网站。