class Antelopes::Pusher
Class used to push jobs in the todo queue This should not be used directly by Antelopes
users.
@since 0.0.1 @private
Attributes
logger[R]
redis[R]
Public Class Methods
new(logger: nil, redis: nil)
click to toggle source
Initialization
@param logger [ServerEngine::DaemonLogger] a logger @param redis [Redis] a {github.com/redis/redis-rb redis} connection
# File lib/antelopes/pusher.rb, line 14 def initialize(logger: nil, redis: nil) @logger = logger || ServerEngine::DaemonLogger.new($stdout) @redis = redis || Antelopes::Redis.new.connection end
Public Instance Methods
call(job_params)
click to toggle source
Mechod that actually adds the job to queue
@example Enqueing a job
result = Antelopes::Pusher.new.call( job: Hash[class: 'MyClass', method: 'call', args: Hash[foo: 'bar']] ) result.jid
@param job_params [Hash] parameters of the job @return [OpenStruct] response object
# File lib/antelopes/pusher.rb, line 29 def call(job_params) @result = OpenStruct.new(jid: SecureRandom.uuid) redis.set("antelopes:job:#{@result.jid}", JSON.generate(job_params.merge(jid: @result.jid))) redis.lpush('antelopes:todo', @result.jid) logger.info "Pushed #{@result.jid} - #{job_params}" @result end