Module: Undertow::Buffer
- Defined in:
- lib/undertow/buffer.rb
Overview
Low-level set operations used by Trackable callbacks and DrainJob. Delegates to the configured store adapter. All methods are no-ops when tracking is disabled.
Class Method Summary collapse
- .acquire_drain_lock(ttl: 30) ⇒ Object
- .deregister_model(model_name) ⇒ Object
- .pending? ⇒ Boolean
- .pending_model_names ⇒ Object
- .pop_deleted(model_name, count) ⇒ Object
- .pop_pending(model_name, count) ⇒ Object
- .push_deleted(model_name, ids) ⇒ Object
- .push_pending(model_name, ids) ⇒ Object
- .release_drain_lock ⇒ Object
- .remaining(model_name) ⇒ Object
- .reregister_model(model_name) ⇒ Object
- .restore_deleted(model_name, ids) ⇒ Object
- .restore_pending(model_name, ids) ⇒ Object
Class Method Details
.acquire_drain_lock(ttl: 30) ⇒ Object
60 61 62 63 64 65 |
# File 'lib/undertow/buffer.rb', line 60 def acquire_drain_lock(ttl: 30) lock_key = Undertow.configuration.drain_lock_key return true unless lock_key store.lock_acquire(lock_key, ttl: ttl) end |
.deregister_model(model_name) ⇒ Object
35 36 37 |
# File 'lib/undertow/buffer.rb', line 35 def deregister_model(model_name) store.remove_member(Registry::MODELS_KEY, model_name) end |
.pending? ⇒ Boolean
56 57 58 |
# File 'lib/undertow/buffer.rb', line 56 def pending? store.member_count(Registry::MODELS_KEY).positive? end |
.pending_model_names ⇒ Object
31 32 33 |
# File 'lib/undertow/buffer.rb', line 31 def pending_model_names store.members(Registry::MODELS_KEY) end |
.pop_deleted(model_name, count) ⇒ Object
27 28 29 |
# File 'lib/undertow/buffer.rb', line 27 def pop_deleted(model_name, count) store.pop_members(Registry.deleted_key(model_name), count) end |
.pop_pending(model_name, count) ⇒ Object
23 24 25 |
# File 'lib/undertow/buffer.rb', line 23 def pop_pending(model_name, count) store.pop_members(Registry.pending_key(model_name), count) end |
.push_deleted(model_name, ids) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/undertow/buffer.rb', line 16 def push_deleted(model_name, ids) return if Undertow.tracking_disabled? store.add_members(Registry.deleted_key(model_name), ids) store.add_members(Registry::MODELS_KEY, model_name) end |
.push_pending(model_name, ids) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/undertow/buffer.rb', line 9 def push_pending(model_name, ids) return if Undertow.tracking_disabled? store.add_members(Registry.pending_key(model_name), ids) store.add_members(Registry::MODELS_KEY, model_name) end |
.release_drain_lock ⇒ Object
67 68 69 70 71 72 |
# File 'lib/undertow/buffer.rb', line 67 def release_drain_lock lock_key = Undertow.configuration.drain_lock_key return unless lock_key store.lock_release(lock_key) end |
.remaining(model_name) ⇒ Object
43 44 45 46 |
# File 'lib/undertow/buffer.rb', line 43 def remaining(model_name) store.member_count(Registry.pending_key(model_name)) + store.member_count(Registry.deleted_key(model_name)) end |
.reregister_model(model_name) ⇒ Object
39 40 41 |
# File 'lib/undertow/buffer.rb', line 39 def reregister_model(model_name) store.add_members(Registry::MODELS_KEY, model_name) end |
.restore_deleted(model_name, ids) ⇒ Object
52 53 54 |
# File 'lib/undertow/buffer.rb', line 52 def restore_deleted(model_name, ids) store.add_members(Registry.deleted_key(model_name), ids) if ids.any? end |
.restore_pending(model_name, ids) ⇒ Object
48 49 50 |
# File 'lib/undertow/buffer.rb', line 48 def restore_pending(model_name, ids) store.add_members(Registry.pending_key(model_name), ids) if ids.any? end |