Module: Magent::Actor::InstanceMethods

Defined in:
lib/magent/actor.rb

Instance Method Summary collapse

Instance Method Details

#_run_tasksObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/magent/actor.rb', line 45

def _run_tasks
  tasks = self.class.tasks

  return false if tasks.empty?
  performed = false

  tasks.each do |task|
    delta = Time.now - task[:last_time]

    if delta >= task[:every]
      task[:last_time] = Time.now
      begin
        instance_eval(&task[:block])
      rescue Exception => e
        $stderr.puts "Failed periodical task: #{e.message}"
        $stderr.puts e.backtrace.join("\n\t")
      end
      performed = true
    end
  end

  performed
end