ID のキューを維持する必要がある Ruby on Rails アプリがあります。グローバル配列をキューとして使用しようとしましたが、アプリの複数のインスタンスが実行されると、Web アプリのグローバル変数がグローバルでなくなることを読みました。次に、アプリケーション全体のキューを維持するにはどうすればよいですか?
これが私の ApplicationController の外観です。
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :update_queue, :get_next_free_agent
$agent_queue = []
def update_queue(agent)
if agent.status == "AVAILABLE"
if agent_queue.find_index(agent.reg_id) == nil
$agent_queue.push(agent.reg_id)
end
else
$agent_queue.delete(agent.reg_id)
end
end
def get_next_free_agent
return agent_queue.shift
end
end
これは機能しませんし、グローバル変数がどのように悪い考えであるかについて読んだ後は、もう使用したくありません。代替ソリューションを提供してください。
ありがとう。