Class: SuckerPunch::Queue
- Inherits:
-
Object
- Object
- SuckerPunch::Queue
- Defined in:
- lib/sucker_punch/queue.rb,
lib/sucker_punch/testing.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #async ⇒ Object
-
#initialize(name) ⇒ Queue
constructor
A new instance of Queue.
- #jobs ⇒ Object
- #method_missing(name, *args, &block) ⇒ Object
- #register(klass, size) ⇒ Object
-
#size ⇒ Object
Equivalent to number of messages queued in the Celluloid mailbox.
-
#workers ⇒ Object
Equivalent to size of the Celluloid Pool However, in context of a “queue” workers makes more sense here.
Constructor Details
#initialize(name) ⇒ Queue
Returns a new instance of Queue.
5 6 7 |
# File 'lib/sucker_punch/queue.rb', line 5 def initialize(name) @name = name end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
32 33 34 |
# File 'lib/sucker_punch/queue.rb', line 32 def method_missing(method_name, *args, &block) Celluloid::Actor[name].send(method_name, *args, &block) end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/sucker_punch/queue.rb', line 3 def name @name end |
Class Method Details
.[](name) ⇒ Object
9 10 11 |
# File 'lib/sucker_punch/queue.rb', line 9 def self.[](name) Celluloid::Actor[name] end |
Instance Method Details
#async ⇒ Object
36 37 38 |
# File 'lib/sucker_punch/testing.rb', line 36 def async self end |
#jobs ⇒ Object
32 33 34 |
# File 'lib/sucker_punch/testing.rb', line 32 def jobs SuckerPunch.queues[@name] end |
#register(klass, size) ⇒ Object
13 14 15 16 17 |
# File 'lib/sucker_punch/queue.rb', line 13 def register(klass, size) opts = {} opts[:size] = size if size Celluloid::Actor[name] = klass.send(:pool, opts) end |
#size ⇒ Object
Equivalent to number of messages queued in the Celluloid mailbox
28 29 30 |
# File 'lib/sucker_punch/queue.rb', line 28 def size Celluloid::Actor[name].mailbox.size end |
#workers ⇒ Object
Equivalent to size of the Celluloid Pool However, in context of a “queue” workers makes more sense here
22 23 24 |
# File 'lib/sucker_punch/queue.rb', line 22 def workers Celluloid::Actor[name].size end |