Sha256: 9d8fd6bd81119618c261dfa45159d9cadbad4af22cde790d51e38d62116fe82c

Contents?: true

Size: 509 Bytes

Versions: 24

Compression:

Stored size: 509 Bytes

Contents

# frozen_string_literal: true

##
# Middleware responsible for storing and
# invalidating cache.
class MemoryInvalidationMiddleware
  attr_accessor :cache, :mutex

  def initialize(inv_time_seconds = 3_600)
    @cache = {}
    @mutex = Mutex.new
    Thread.new do
      loop do
        sleep(1)
        @mutex.synchronize do
          @cache.each_pair do |key, value|
            @cache.delete(key) if Time.now - value[1] >= inv_time_seconds
          end
        end
      end
    end
    sleep(2)
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
macaw_framework-1.3.21 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.3.1 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.3.0 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.6 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.5 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.4 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.3 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.2 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.1 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.2.0 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.8 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.7 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.6 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.5 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.4 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.3 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.2 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.1 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.1.0 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb
macaw_framework-1.0.5 lib/macaw_framework/middlewares/memory_invalidation_middleware.rb