Class: Vessel::Scheduler
- Inherits:
-
Object
- Object
- Vessel::Scheduler
- Extended by:
- Forwardable
- Defined in:
- lib/vessel/scheduler.rb
Instance Attribute Summary collapse
-
#driver ⇒ Object
readonly
Returns the value of attribute driver.
-
#queue ⇒ Object
readonly
Returns the value of attribute queue.
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
Instance Method Summary collapse
- #force_kill ⇒ Object
- #idle? ⇒ Boolean
-
#initialize(queue, settings) ⇒ Scheduler
constructor
A new instance of Scheduler.
- #post(*requests) ⇒ Object
- #stop ⇒ Object
Constructor Details
Instance Attribute Details
#driver ⇒ Object (readonly)
Returns the value of attribute driver.
12 13 14 |
# File 'lib/vessel/scheduler.rb', line 12 def driver @driver end |
#queue ⇒ Object (readonly)
Returns the value of attribute queue.
12 13 14 |
# File 'lib/vessel/scheduler.rb', line 12 def queue @queue end |
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
12 13 14 |
# File 'lib/vessel/scheduler.rb', line 12 def settings @settings end |
Instance Method Details
#force_kill ⇒ Object
33 34 35 36 |
# File 'lib/vessel/scheduler.rb', line 33 def force_kill pool.send(:ns_kill_execution) driver.stop end |
#idle? ⇒ Boolean
38 39 40 |
# File 'lib/vessel/scheduler.rb', line 38 def idle? queue_length.zero? && scheduled_task_count == completed_task_count end |
#post(*requests) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/vessel/scheduler.rb', line 20 def post(*requests) requests.flatten.map do |request| Concurrent::Future.execute(executor: pool, args: [request]) { |r| queue << driver.go_to(r) } end end |
#stop ⇒ Object
27 28 29 30 31 |
# File 'lib/vessel/scheduler.rb', line 27 def stop pool.shutdown pool.kill unless pool.wait_for_termination(30) driver.stop end |