class Employer::Employees::AbstractEmployee
Attributes
job[R]
logger[R]
Public Class Methods
before_fork(&block)
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 12 def self.before_fork(&block) before_fork_hooks << block end
before_fork_hooks()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 8 def self.before_fork_hooks @before_fork_hooks ||= [] end
new(logger)
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 16 def initialize(logger) @logger = logger end
Public Instance Methods
force_work_stop()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 66 def force_work_stop end
free()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 57 def free return unless work_completed? || work_failed? @work_state = nil @job = nil end
free?()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 41 def free? job.nil? end
perform_job()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 26 def perform_job logger.debug("Employee #{self.object_id} is now performing job #{job.id}") job.perform logger.debug("Employee #{self.object_id} has now completed #{job.id}") end
stop_working()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 36 def stop_working return if work_completed? || work_failed? force_work_stop end
wait_for_completion()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 32 def wait_for_completion work_state(true) end
work(job)
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 20 def work(job) raise Employer::Errors::EmployeeBusy unless free? @job = job self.class.before_fork_hooks.each(&:call) end
work_completed?()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 49 def work_completed? true if work_state == :complete end
work_failed?()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 53 def work_failed? true if work_state == :failed end
work_in_progress?()
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 45 def work_in_progress? true if work_state == :busy end
work_state(wait = false)
click to toggle source
# File lib/employer/employees/abstract_employee.rb, line 63 def work_state(wait = false) end