Sha256: 7eb93fb26c0c79c4ac0f2bd2a7643bd44434d1c8cafdb787803ff02b7d750c74
Contents?: true
Size: 863 Bytes
Versions: 1
Compression:
Stored size: 863 Bytes
Contents
module Cloudist class Listener attr_reader :job_queue_name, :job_id def initialize(job_or_queue_name) if job_or_queue_name.is_a?(Cloudist::Job) @job_queue_name = Utils.reply_prefix(job_or_queue_name.payload.headers[:master_queue]) @job_id = job_or_queue_name.id elsif job_or_queue_name.is_a?(String) @job_queue_name = Utils.reply_prefix(job_or_queue_name) @job_id = nil else raise ArgumentError, "Invalid listener type, accepts job queue name or Cloudist::Job instance" end end def subscribe(&block) reply_queue = Cloudist::ReplyQueue.new(job_queue_name) reply_queue.setup(job_id) if job_id reply_queue.subscribe do |request| job = Job.new(request.payload) job.instance_eval(&block) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cloudist-0.0.2 | lib/cloudist/listener.rb |