Module: Lux::DelayedJob

Extended by:
DelayedJob
Included in:
DelayedJob
Defined in:
lib/lux/delayed_job/lib/redis.rb,
lib/lux/delayed_job/delayed_job.rb

Defined Under Namespace

Modules: Memory, NSQ, Postgre, Redis

Constant Summary collapse

@@server =
nil

Instance Method Summary collapse

Instance Method Details

#popObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/lux/delayed_job/delayed_job.rb', line 18

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) ⇒ Object



13
14
15
16
# File 'lib/lux/delayed_job/delayed_job.rb', line 13

def push object, method_to_call=nil
  die "No DelayedJob server defined" unless @@server
  @@server.push [object, method_to_call]
end

#run!(seconds = 2) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/lux/delayed_job/delayed_job.rb', line 34

def run! seconds=2
  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) ⇒ Object



6
7
8
9
10
11
# File 'lib/lux/delayed_job/delayed_job.rb', line 6

def server= name
  adapter = "Lux::DelayedJob::#{name.to_s.capitalize}"
  @@server = adapter.constantize
rescue NameError
  die 'No adapter %s not found' % adapter
end