Rails在多个线程中共享会话变量

时间:2015-04-20 07:58:27

标签: ruby-on-rails multithreading session

是否可以在多个线程中共享会话变量?  我想根据会话变量在新线程中运行循环。 问题是我在主线程中更改会话变量并且它没有反映在创建的新线程中?

 def log_in(user)      

    begin     

    session[:user_id] = user[:id]

    storeAuthToken(user)

    session[:logged] = true  


Thread.new do


      while true  do      

    if(! session[:logged])    
        break
      else

        begin
        #do something
       sleep 5          
        rescue => e 
        p  e     
        end

      end
    end
  end 

  rescue => e


    end  
end

1 个答案:

答案 0 :(得分:0)

在这种情况下,全局变量是最佳候选者。在Rails中,以美元符号($)开头的变量是全局变量。

或者您可能想尝试在应用程序范围内可用的配置变量或YAML键值对。