Class: Queris::QueryStore::Metaquery
Constant Summary
Queris::Query::MINIMUM_QUERY_TTL
Instance Attribute Summary
#params
#created_at, #model, #ops, #params, #redis_prefix, #run_id, #sort_ops, #subqueries, #temp_key_ttl, #timer, #ttl
Instance Method Summary
collapse
#add_temp_key, #all_index_keys, #all_indices, #all_live_indices, #all_query_keys, #all_subqueries, #count, #delta, #diff, #each_operand, #each_subquery, #explain, #first_result, #flush, #gather_ready_data, #id, #indices, #info, #intersect, #json_redis_dump, #key, #key_size, #live!, #live=, #live?, #marshal_dump, #marshal_load, #marshaled, #member?, #no_optimize!, #pageable!, #pageable?, #paged?, #param, #profiler, #query_run_stage_begin, #query_run_stage_inspect, #query_run_stage_prepare, #query_run_stage_release, #query_run_stage_reserve, #query_run_stage_run, #range, #raw_results, #ready?, #realtime!, #realtime?, #resort, #result, #result_score, #result_scores, #results, #results_key, #run, #run_callbacks, #run_pipeline, #run_stage, #runstate_key, #runstate_keys, #sort, #sort_mult, #sort_score, #sortby, #sorting_by, #sorting_by?, #static!, #static?, #structure, #subquery, #subquery_id, #temp_keys, #to_s, #trace, #trace!, #trace?, #undo, #union, #unpageable!, #update, #usable_as_results?, #use_page, #use_redis, #uses_index?, #uses_index_as_results_key?, #volatile_query_keys
Constructor Details
#initialize(model, arg = {}) ⇒ Metaquery
Returns a new instance of Metaquery.
95
96
97
98
99
|
# File 'lib/queris/query_store.rb', line 95
def initialize(model, arg={})
@target_model = arg[:target_model]
arg[:profiler] = Queris::DummyProfiler.new
super model, arg
end
|
Instance Method Details
#exists? ⇒ Boolean
125
126
127
|
# File 'lib/queris/query_store.rb', line 125
def exists?
super(redis)
end
|
#redis ⇒ Object
103
104
105
106
107
108
109
|
# File 'lib/queris/query_store.rb', line 103
def redis
if model == QueryStore
Queris.redis :'metaquery:metaquery'
else
@redis || Queris::redis(:'metaquery:slave') || redis_master
end
end
|
#redis_master ⇒ Object
100
101
102
|
# File 'lib/queris/query_store.rb', line 100
def redis_master
Queris.redis(model == QueryStore ? :'metaquery:metaquery' : :metaquery)
end
|
#results_with_gc ⇒ Object
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/queris/query_store.rb', line 111
def results_with_gc
res = results(:replace_command => true) do |cmd, key, first, last, rangeopt|
redis.evalsha(Queris.script_hash(:results_with_ttl), [key], ["Queris:Metaquery:expire:%s"])
end
res = [[],[]] if res.empty?
res.first.map! do |marshaled|
QueryStore.load marshaled
end
res.last.each do |marshaled|
QueryStore.remove QueryStore.load(marshaled)
end
res.first
end
|
#set_param_from_index(*arg) ⇒ Object
128
|
# File 'lib/queris/query_store.rb', line 128
def set_param_from_index(*arg); self; end
|