Class: Maxwell::Agent::WorkSchedule

Inherits:
Object
  • Object
show all
Includes:
Celluloid
Defined in:
lib/maxwell/agent/work_schedule.rb

Instance Method Summary collapse

Instance Method Details

#add(work) ⇒ Object



6
7
8
9
# File 'lib/maxwell/agent/work_schedule.rb', line 6

def add(work)
  async.add_work(work)
  work
end

#allObject



40
41
42
# File 'lib/maxwell/agent/work_schedule.rb', line 40

def all
  schedule.concat(working)
end

#countObject



11
12
13
14
15
# File 'lib/maxwell/agent/work_schedule.rb', line 11

def count
  redis do |redis|
    redis.zcard 'work_schedule'
  end
end

#getObject



17
18
19
# File 'lib/maxwell/agent/work_schedule.rb', line 17

def get
  find_ready_for_work
end

#put_back(work) ⇒ Object



21
22
23
24
# File 'lib/maxwell/agent/work_schedule.rb', line 21

def put_back(work)
  remove_from_working_queue(work)
  async.add(work)
end

#scheduleObject



33
34
35
36
37
38
# File 'lib/maxwell/agent/work_schedule.rb', line 33

def schedule
  work_items = redis do |redis|
    redis.zrange 'work_schedule', 0, -1
  end
  work_items.map {|work| Work.load(work) }
end

#workingObject



26
27
28
29
30
31
# File 'lib/maxwell/agent/work_schedule.rb', line 26

def working
  work_items = redis do |redis|
    redis.smembers 'work_schedule:working'
  end
  work_items.map {|work| Work.load(work) }
end