1

我有一个背景工作,可以抓住用户的 Facebook 朋友。

我希望每次登录用户启动新的浏览器会话时触发此后台作业。我不确定什么构成 Rails 的“新”会话的技术定义,但理想情况下,只要用户在一段时间不活动后(例如,自上次访问以来超过 30 分钟)点击该站点,它就会触发。

如何在 Rails 中检测到这样的新会话?感谢任何帮助。

4

2 回答 2

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
于 2012-07-27T01:10:42.997 回答
0

如果您使用的是设计,last_sign_in_at则表中有一列users。您的后台作业可以使用它来检查用户最近是否访问过您的站点。

于 2012-07-26T20:42:41.057 回答