class QPush::Server::Perform

The Perform worker runs any jobs that are queued into our Redis server. It will perform a 'blocking pop' on our job list until one is added.

Public Class Methods

new() click to toggle source
# File lib/qpush/server/perform.rb, line 7
def initialize
  @done = false
end

Public Instance Methods

shutdown() click to toggle source

Shutsdown our perform process.

# File lib/qpush/server/perform.rb, line 22
def shutdown
  @done = true
end
start() click to toggle source

Starts our perform process. This will run until instructed to stop.

# File lib/qpush/server/perform.rb, line 13
def start
  until @done
    job = retrieve_job
    job.execute if job
  end
end

Private Instance Methods

retrieve_job() click to toggle source

Performs a 'blocking pop' on our redis job list.

# File lib/qpush/server/perform.rb, line 30
def retrieve_job
  json = Server.redis { |c| c.brpop(Server.keys[:perform_list]) }
  Job.new(JSON.parse(json.last))
rescue => e
  raise ServerError, e.message
end