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

Deviseを使用している場合はlast_sign_in_atusersテーブルに列があります。バックグラウンドジョブで使用して、ユーザーが最近サイトにアクセスしたかどうかを確認できます。

于 2012-07-26T20:42:41.057 に答える