class ActiveRecord::AsynchronousQueriesTracker
:nodoc:
def complete(asynchronous_queries_tracker)
def complete(asynchronous_queries_tracker) asynchronous_queries_tracker.finalize_session end
def current_session
def current_session @stack.last or raise ActiveRecordError, "Can't perform asynchronous queries without a query session" end
def finalize_session(wait = false)
def finalize_session(wait = false) session = @stack.pop session&.finalize(wait) self end
def initialize
def initialize @stack = [] end
def install_executor_hooks(executor = ActiveSupport::Executor)
def install_executor_hooks(executor = ActiveSupport::Executor) executor.register_hook(self) end
def run
def run ActiveRecord::Base.asynchronous_queries_tracker.tap(&:start_session) end
def start_session
def start_session session = Session.new @stack << session end