Class: Textus::Handlers::Maintenance::DrainStore
- Inherits:
-
Object
- Object
- Textus::Handlers::Maintenance::DrainStore
- Defined in:
- lib/textus/handlers/maintenance/drain_store.rb
Instance Method Summary collapse
- #call(_command, call) ⇒ Object
-
#initialize(container:, job_store:) ⇒ DrainStore
constructor
A new instance of DrainStore.
Constructor Details
#initialize(container:, job_store:) ⇒ DrainStore
Returns a new instance of DrainStore.
5 6 7 8 |
# File 'lib/textus/handlers/maintenance/drain_store.rb', line 5 def initialize(container:, job_store:) @container = container @job_store = job_store end |
Instance Method Details
#call(_command, call) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/textus/handlers/maintenance/drain_store.rb', line 10 def call(_command, call) queue = Textus::Store::Jobs::Queue.new(store: @job_store) Textus::Store::Jobs::Planner.seed(container: @container, queue: queue, role: call.role) queue.reclaim(now: Textus::Port::Clock.new.now) summary = Textus::Store::Jobs::Worker.for(container: @container, queue: queue).drain Value::Result.success("protocol" => Textus::PROTOCOL, "ok" => summary.failed.zero?, "completed" => summary.completed, "failed" => summary.failed) end |