Module: Merb::AsyncManager

Defined in:
lib/merb_gets_ass/async_manager.rb

Constant Summary collapse

@@hostname =
Socket.gethostname

Class Method Summary collapse

Class Method Details

.schedulerObject



7
8
9
# File 'lib/merb_gets_ass/async_manager.rb', line 7

def scheduler
  @@scheduler ||= Rufus::Scheduler.new
end

.startObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/merb_gets_ass/async_manager.rb', line 15

def start
  AsyncManager.tasks.each do |task|
    {
      :in     => "schedule_in",
      :at     => "schedule_at",
      :every  => "schedule_every",
      :cron   => "schedule"
    }.each do |interval,func_name|
      AsyncManager.scheduler.send func_name, task.schedule[interval] do |job_id,timestamp,params|
        begin
          task.new(job_id,timestamp,params).run
        rescue Exception => ex
          task.exception_handler.call(ex)
        end
      end unless task.schedule[interval].nil?
    end
  end
  
  AsyncManager.scheduler.start
end

.tasksObject



11
12
13
# File 'lib/merb_gets_ass/async_manager.rb', line 11

def tasks
  @tasks ||= []
end