430e767139
The circuitbreaker now has 2 failure modes: - Backing off: This will raise the `Gitlab::Git::Storage::Failing` exception. Access to the shard is blocked temporarily. - Circuit broken: This will raise the `Gitlab::Git::Storage::CircuitBroken` exception. Access to the shard will be blocked until the failures are reset.
24 lines
536 B
Ruby
24 lines
536 B
Ruby
module Gitlab
|
|
module Git
|
|
module Storage
|
|
class Inaccessible < StandardError
|
|
attr_reader :retry_after
|
|
|
|
def initialize(message = nil, retry_after = nil)
|
|
super(message)
|
|
@retry_after = retry_after
|
|
end
|
|
end
|
|
|
|
CircuitOpen = Class.new(Inaccessible)
|
|
Misconfiguration = Class.new(Inaccessible)
|
|
Failing = Class.new(Inaccessible)
|
|
|
|
REDIS_KEY_PREFIX = 'storage_accessible:'.freeze
|
|
|
|
def self.redis
|
|
Gitlab::Redis::SharedState
|
|
end
|
|
end
|
|
end
|
|
end
|