module Lux::DelayedJob

Attributes

server[R]

Public Instance Methods

pop() click to toggle source
# File lib/lux/delayed_job/delayed_job.rb, line 20
def pop
  obj, method_to_call = @server.pop

  return unless obj

  puts "JOB POP> #{obj.to_s}.#{method_to_call}".yellow

  if method_to_call
    begin
      obj.send(method_to_call)
    rescue
      puts("Lux::DelayedJob.pop FAIL for :#{method_to_call} (#{$!.message})".red)
    end
  else
    eval(obj)
  end

  true
end
push(object, method_to_call=nil) click to toggle source
# File lib/lux/delayed_job/delayed_job.rb, line 15
def push object, method_to_call=nil
  die "No DelayedJob server defined" unless @server
  @server.push [object, method_to_call]
end
run!(seconds=1) click to toggle source
# File lib/lux/delayed_job/delayed_job.rb, line 40
def run! seconds=1
  puts "JOB QUE> is running for #{@server}".green

  Thread.new do
    while true
      print '.'
      true while Lux::DelayedJob.pop
      sleep seconds
    end
  end.join
end
server=(name) click to toggle source
# File lib/lux/delayed_job/delayed_job.rb, line 8
def server= name
  adapter = "Lux::DelayedJob::#{name.to_s.capitalize}"
  @server = adapter.constantize
rescue NameError
  die 'No adapter %s not found' % adapter
end