Class: Dalli::PipelinedDeleter
- Inherits:
-
Object
- Object
- Dalli::PipelinedDeleter
- Defined in:
- lib/dalli/pipelined_deleter.rb
Overview
Contains logic for the pipelined delete operations implemented by the client. Efficiently deletes multiple keys by grouping requests by server and using quiet mode to minimize round trips.
Instance Method Summary collapse
-
#initialize(ring, key_manager) ⇒ PipelinedDeleter
constructor
A new instance of PipelinedDeleter.
-
#process(keys) ⇒ Integer
Deletes multiple keys from memcached.
Constructor Details
#initialize(ring, key_manager) ⇒ PipelinedDeleter
Returns a new instance of PipelinedDeleter.
10 11 12 13 |
# File 'lib/dalli/pipelined_deleter.rb', line 10 def initialize(ring, key_manager) @ring = ring @key_manager = key_manager end |
Instance Method Details
#process(keys) ⇒ Integer
Deletes multiple keys from memcached.
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/dalli/pipelined_deleter.rb', line 24 def process(keys) return 0 if keys.empty? @ring.lock do groups = setup_requests(keys) finish_requests(groups) end rescue Dalli::RetryableNetworkError => e Dalli.logger.debug { e.inspect } Dalli.logger.debug { 'retrying pipelined deletes because of network error' } retry end |