Class: Gitlab::ApplicationRateLimiter::IncrementPerActionedResource
- Inherits:
-
BaseStrategy
- Object
- BaseStrategy
- Gitlab::ApplicationRateLimiter::IncrementPerActionedResource
- Defined in:
- lib/gitlab/application_rate_limiter/increment_per_actioned_resource.rb
Instance Method Summary collapse
- #increment(cache_key, expiry) ⇒ Object
-
#initialize(resource_key) ⇒ IncrementPerActionedResource
constructor
A new instance of IncrementPerActionedResource.
- #read(cache_key) ⇒ Object
Constructor Details
#initialize(resource_key) ⇒ IncrementPerActionedResource
Returns a new instance of IncrementPerActionedResource.
6 7 8 |
# File 'lib/gitlab/application_rate_limiter/increment_per_actioned_resource.rb', line 6 def initialize(resource_key) @resource_key = resource_key end |
Instance Method Details
#increment(cache_key, expiry) ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/gitlab/application_rate_limiter/increment_per_actioned_resource.rb', line 10 def increment(cache_key, expiry) with_redis do |redis| redis.pipelined do |pipeline| pipeline.sadd?(cache_key, resource_key) pipeline.expire(cache_key, expiry) pipeline.scard(cache_key) end.last end end |
#read(cache_key) ⇒ Object
20 21 22 23 24 |
# File 'lib/gitlab/application_rate_limiter/increment_per_actioned_resource.rb', line 20 def read(cache_key) with_redis do |redis| redis.scard(cache_key) end end |