Sha256: a4926eda7502a191bbc8f191cde33ba39948188dc6abf9107262e931973639a5
Contents?: true
Size: 1.87 KB
Versions: 8
Compression:
Stored size: 1.87 KB
Contents
class ThinkingSphinx::Deltas::ResqueDelta < ThinkingSphinx::Deltas::DefaultDelta module FlagAsDeletedSet extend self def set_name(core_name) "#{ThinkingSphinx::Deltas::ResqueDelta.job_prefix}:flag.deleted:#{core_name}:set" end def temp_name(core_name) "#{ThinkingSphinx::Deltas::ResqueDelta.job_prefix}:flag.deleted:#{core_name}:temp" end def processing_name(core_name) "#{ThinkingSphinx::Deltas::ResqueDelta.job_prefix}:flag.deleted:#{core_name}:processing" end def add(core_name, document_id) Resque.redis.sadd(set_name(core_name), document_id) end def clear!(core_name) Resque.redis.del(set_name(core_name)) #Clear processing set as well delta_name = ThinkingSphinx::Deltas::ResqueDelta::IndexUtils.core_to_delta(core_name) ThinkingSphinx::Deltas::ResqueDelta::DeltaJob.around_perform_lock(delta_name) do Resque.redis.del(processing_name(core_name)) end end def clear_all! ThinkingSphinx::Deltas::ResqueDelta::IndexUtils.core_indices.each do |core_index| clear!(core_index) end end def get_subset_for_processing(core_name) # Copy set to temp Resque.redis.sunionstore temp_name(core_name), set_name(core_name) # Store (set - temp) into set. This removes all items we copied into temp from set. Resque.redis.sdiffstore set_name(core_name), set_name(core_name), temp_name(core_name) # Merge processing and temp together and store into processing. Resque.redis.sunionstore processing_name(core_name), processing_name(core_name), temp_name(core_name) Resque.redis.del temp_name(core_name) end def processing_members(core_name) Resque.redis.smembers(processing_name(core_name)).collect(&:to_i) end def clear_processing(core_name) Resque.redis.del(processing_name(core_name)) end end end
Version data entries
8 entries across 8 versions & 2 rubygems