Class: Plumbing::Actor::Worker
- Defined in:
- lib/plumbing/actor/worker.rb
Instance Method Summary collapse
- #active? ⇒ Boolean
-
#after(delay, method:, sender: nil, params: {}, block: nil) ⇒ Object
Deliver
methodto this actor afterdelayseconds. - #build_message(method:, sender:, params:, block:) ⇒ Object
- #call ⇒ Object (also: #start)
-
#cancel_deferred(deferral) ⇒ Object
Cancel a previously-scheduled deferral (race-safe no-op flag).
- #dispatch(message) ⇒ Object
- #message_class ⇒ Object
- #post(method, sender: nil, **params, &block) ⇒ Object
- #stop ⇒ Object
Instance Method Details
#active? ⇒ Boolean
16 |
# File 'lib/plumbing/actor/worker.rb', line 16 def active? = raise NotImplementedError |
#after(delay, method:, sender: nil, params: {}, block: nil) ⇒ Object
Deliver method to this actor after delay seconds. Returns a Deferral
handle. Base raises; each worker implements its own timer.
26 |
# File 'lib/plumbing/actor/worker.rb', line 26 def after(delay, method:, sender: nil, params: {}, block: nil) = raise NotImplementedError |
#build_message(method:, sender:, params:, block:) ⇒ Object
31 |
# File 'lib/plumbing/actor/worker.rb', line 31 def (method:, sender:, params:, block:) = .new(actor: @actor, method:, sender:, params:, block:) |
#call ⇒ Object Also known as: start
11 |
# File 'lib/plumbing/actor/worker.rb', line 11 def call = raise NotImplementedError |
#cancel_deferred(deferral) ⇒ Object
Cancel a previously-scheduled deferral (race-safe no-op flag).
29 |
# File 'lib/plumbing/actor/worker.rb', line 29 def cancel_deferred(deferral) = deferral&.cancel |
#dispatch(message) ⇒ Object
35 |
# File 'lib/plumbing/actor/worker.rb', line 35 def dispatch() = raise NotImplementedError |
#message_class ⇒ Object
33 |
# File 'lib/plumbing/actor/worker.rb', line 33 def = Plumbing::Actor::Message |
#post(method, sender: nil, **params, &block) ⇒ Object
18 19 20 21 22 |
# File 'lib/plumbing/actor/worker.rb', line 18 def post method, sender: nil, **params, &block (method: method, sender: sender, params: params, block: block).tap do || dispatch end end |
#stop ⇒ Object
14 |
# File 'lib/plumbing/actor/worker.rb', line 14 def stop = raise NotImplementedError |