class Taskinator::Persistence::RedisCleanupVisitor

Attributes

expire_in[R]
instance[R]

Public Class Methods

new(conn, instance, expire_in) click to toggle source
# File lib/taskinator/persistence.rb, line 589
def initialize(conn, instance, expire_in)
  @conn = conn
  @instance = instance
  @expire_in = expire_in.to_i
  @key = instance.key
end

Public Instance Methods

visit() click to toggle source
# File lib/taskinator/persistence.rb, line 596
def visit
  @instance.accept(self)
  @conn.expire(@key, expire_in)
end
visit_process(attribute) click to toggle source
# File lib/taskinator/persistence.rb, line 601
def visit_process(attribute)
  process = @instance.send(attribute)
  RedisCleanupVisitor.new(@conn, process, expire_in).visit if process
end
visit_tasks(tasks) click to toggle source
# File lib/taskinator/persistence.rb, line 606
def visit_tasks(tasks)
  @conn.expire "#{@key}:tasks", expire_in
  @conn.expire "#{@key}.count", expire_in
  @conn.expire "#{@key}.pending", expire_in
  tasks.each do |task|
    RedisCleanupVisitor.new(@conn, task, expire_in).visit
  end
end