Class: ManagerScheduler

Inherits:
ManagerBase show all
Defined in:
lib/mrpin/core/scheduler/manager_scheduler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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(options = nil)
  super(options)

  @scheduler = Rufus::Scheduler.new

  @actions = []

  @actions_locker = Mutex.new
end

Instance Attribute Details

#schedulerObject (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

Returns:

  • (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_tasksObject



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