class Antelopes::Worker

Basic worker that pulls a job, runs it, reports and repeats.

@since 0.0.1 @private

Attributes

logger[R]
puller[R]

Public Class Methods

new(logger: ServerEngine::DaemonLogger.new($stdout), puller:) click to toggle source

Worker initialization.

@param logger [ServerEngine::DaemonLogger] a logger @param puller

# File lib/antelopes/worker.rb, line 13
def initialize(logger: ServerEngine::DaemonLogger.new($stdout), puller:)
  @logger = logger
  @puller = puller
end

Public Instance Methods

run() click to toggle source

Method called by the looper at every loop.

@since 0.0.1

# File lib/antelopes/worker.rb, line 21
def run
  job = puller.pull
  return if job.nil?

  klass = Object.const_get(job.job_class)
  if job.job_method.nil?
    klass.public_send(job.job_class_method, **job.job_args)
  else
    klass.new.public_send(job.job_method, **job.job_args)
  end
end