Class: Gitlab::Testing::ActionCableBlocker
- Inherits:
-
Object
- Object
- Gitlab::Testing::ActionCableBlocker
- Defined in:
- lib/gitlab/testing/action_cable_blocker.rb
Constant Summary collapse
- @@num_active_requests =
Concurrent::AtomicFixnum.new(0)
- @@block_requests =
Concurrent::AtomicBoolean.new(false)
Class Method Summary collapse
-
.allow_requests! ⇒ Object
Allows the server to accept requests again.
-
.block_requests! ⇒ Object
Prevents the server from accepting new requests.
- .install ⇒ Object
-
.num_active_requests ⇒ Object
Returns the number of requests the server is currently processing.
Class Method Details
.allow_requests! ⇒ Object
Allows the server to accept requests again.
24 25 26 |
# File 'lib/gitlab/testing/action_cable_blocker.rb', line 24 def self.allow_requests! @@block_requests.value = false end |
.block_requests! ⇒ Object
Prevents the server from accepting new requests. Any new requests will be skipped.
19 20 21 |
# File 'lib/gitlab/testing/action_cable_blocker.rb', line 19 def self.block_requests! @@block_requests.value = true end |
.install ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/gitlab/testing/action_cable_blocker.rb', line 28 def self.install ::ActionCable::Server::Worker.set_callback :work, :around do |_, inner| @@num_active_requests.increment inner.call if @@block_requests.false? ensure @@num_active_requests.decrement end end |
.num_active_requests ⇒ Object
Returns the number of requests the server is currently processing.
14 15 16 |
# File 'lib/gitlab/testing/action_cable_blocker.rb', line 14 def self.num_active_requests @@num_active_requests.value end |