Class: ManagerScheduler
- Inherits:
-
ManagerBase
- Object
- ManagerBase
- ManagerScheduler
- Defined in:
- lib/mrpin/core/scheduler/manager_scheduler.rb
Instance Attribute Summary collapse
-
#scheduler ⇒ Object
readonly
example methods in, every, unschedule, at.
Instance Method Summary collapse
-
#initialize(options = nil) ⇒ ManagerScheduler
constructor
A new instance of ManagerScheduler.
- #is_ready_for_shutdown? ⇒ Boolean
- #run_in_background(*actions, &action_block) ⇒ Object
- #start_tasks ⇒ Object
Methods inherited from ManagerBase
#cleanup_data, #info, #invalidate_cache, #load_init_data, #on_data_loaded, #on_server_maintenance_on, #on_server_shutdown, #on_server_started, #post_init
Constructor Details
#initialize(options = nil) ⇒ ManagerScheduler
Returns a new instance of ManagerScheduler.
28 29 30 31 32 33 34 35 36 |
# File 'lib/mrpin/core/scheduler/manager_scheduler.rb', line 28 def initialize( = nil) super() @scheduler = Rufus::Scheduler.new @actions = [] @actions_locker = Mutex.new end |
Instance Attribute Details
#scheduler ⇒ Object (readonly)
example methods in, every, unschedule, at
9 10 11 |
# File 'lib/mrpin/core/scheduler/manager_scheduler.rb', line 9 def scheduler @scheduler end |
Instance Method Details
#is_ready_for_shutdown? ⇒ Boolean
12 13 14 15 16 17 18 19 20 |
# File 'lib/mrpin/core/scheduler/manager_scheduler.rb', line 12 def is_ready_for_shutdown? result = false @actions_locker.synchronize do result = @actions.empty? end result end |
#run_in_background(*actions, &action_block) ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/mrpin/core/scheduler/manager_scheduler.rb', line 69 def run_in_background(*actions, &action_block) @actions_locker.synchronize do actions.each do |action| @actions << action end @actions << action_block if action_block end end |
#start_tasks ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/mrpin/core/scheduler/manager_scheduler.rb', line 39 def start_tasks super create_background_tasks_thread nil end |