instance method flush_all

Ruby on Rails 2.3.18

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Signature

flush_all(delay=0)

Flush the cache from all memcache servers. A non-zero value for delay will ensure that the flush is propogated slowly through your memcached server farm. The Nth server will be flushed N*delay seconds from now, asynchronously so this method returns quickly. This prevents a huge database spike due to a total flush all at once.

Parameters

delay opt = 0
Source
# File activesupport/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb, line 497
  def flush_all(delay=0)
    raise MemCacheError, 'No active servers' unless active?
    raise MemCacheError, "Update of readonly cache" if @readonly

    begin
      delay_time = 0
      @servers.each do |server|
        with_socket_management(server) do |socket|
          logger.debug { "flush_all #{delay_time} on #{server}" } if logger
          if delay == 0 # older versions of memcached will fail silently otherwise
            socket.write "flush_all#{noreply}\r\n"
          else
            socket.write "flush_all #{delay_time}#{noreply}\r\n"
          end
          break nil if @no_reply
          result = socket.gets
          raise_on_error_response! result
          result
        end
        delay_time += delay
      end
    rescue IndexError => err
      handle_error nil, err
    end
  end

Defined in activesupport/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb line 497 · View on GitHub · Improve this page · Find usages on GitHub

Defined in MemCache

Type at least 2 characters to search.

↑↓ navigate · open · esc close