Class: ThriftRack::Downgrade
- Inherits:
-
Object
- Object
- ThriftRack::Downgrade
- Defined in:
- lib/thrift_rack/downgrade.rb
Class Method Summary collapse
- .change_downgrade(drop_percentage) ⇒ Object
- .close_downgrade ⇒ Object
- .current_drop_percentage ⇒ Object
- .downgrade_redis_key ⇒ Object
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Downgrade
constructor
A new instance of Downgrade.
Constructor Details
#initialize(app) ⇒ Downgrade
3 4 5 6 7 |
# File 'lib/thrift_rack/downgrade.rb', line 3 def initialize(app) @app = app @drop_percentage = 0 @last_sync_drop_percentage_at = Time.at(0) end |
Class Method Details
.change_downgrade(drop_percentage) ⇒ Object
29 30 31 |
# File 'lib/thrift_rack/downgrade.rb', line 29 def change_downgrade(drop_percentage) ThriftRack.redis.set(downgrade_redis_key, drop_percentage) end |
.close_downgrade ⇒ Object
37 38 39 |
# File 'lib/thrift_rack/downgrade.rb', line 37 def close_downgrade ThriftRack.redis.del(downgrade_redis_key) end |
.current_drop_percentage ⇒ Object
33 34 35 |
# File 'lib/thrift_rack/downgrade.rb', line 33 def current_drop_percentage ThriftRack.redis.get(downgrade_redis_key).to_f end |
.downgrade_redis_key ⇒ Object
41 42 43 |
# File 'lib/thrift_rack/downgrade.rb', line 41 def downgrade_redis_key "thrift_rack:downgrade" end |
Instance Method Details
#call(env) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/thrift_rack/downgrade.rb', line 9 def call(env) if rand(100) < drop_percentage [509, {}, ["Downgrading"]] else @app.call(env) end end |