我有一个背景工作,可以抓住用户的 Facebook 朋友。
我希望每次登录用户启动新的浏览器会话时触发此后台作业。我不确定什么构成 Rails 的“新”会话的技术定义,但理想情况下,只要用户在一段时间不活动后(例如,自上次访问以来超过 30 分钟)点击该站点,它就会触发。
如何在 Rails 中检测到这样的新会话?感谢任何帮助。
我有一个背景工作,可以抓住用户的 Facebook 朋友。
我希望每次登录用户启动新的浏览器会话时触发此后台作业。我不确定什么构成 Rails 的“新”会话的技术定义,但理想情况下,只要用户在一段时间不活动后(例如,自上次访问以来超过 30 分钟)点击该站点,它就会触发。
如何在 Rails 中检测到这样的新会话?感谢任何帮助。
这是我能做的最好的解决它。我正在使用会话变量。我的 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
如果您使用的是设计,last_sign_in_at
则表中有一列users
。您的后台作业可以使用它来检查用户最近是否访问过您的站点。