Class: Kongnomal::JobQueue
- Inherits:
-
Object
- Object
- Kongnomal::JobQueue
- Extended by:
- Forwardable
- Defined in:
- lib/kongnomal/job_queue.rb
Constant Summary collapse
- JOB_EVENT_TUBE =
"job.events"
Instance Method Summary collapse
- #delete(id) ⇒ Object
-
#initialize(beanstalk_server_address, tube = "default") ⇒ JobQueue
constructor
A new instance of JobQueue.
- #put(body, pri = 65536, delay = 0, ttr = 120) ⇒ Object
- #reserve(timeout = nil) ⇒ Object
- #yput(obj, pri = 65536, delay = 0, ttr = 120) ⇒ Object
Constructor Details
#initialize(beanstalk_server_address, tube = "default") ⇒ JobQueue
Returns a new instance of JobQueue.
8 9 10 11 12 |
# File 'lib/kongnomal/job_queue.rb', line 8 def initialize(beanstalk_server_address, tube = "default") @tube = tube @job_tube = Beanstalk::Connection.new(beanstalk_server_address, tube) @event_tube = Beanstalk::Connection.new(beanstalk_server_address, JOB_EVENT_TUBE) end |
Instance Method Details
#delete(id) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/kongnomal/job_queue.rb', line 32 def delete(id) beanstalk_job = @job_tube.peek_job(id) deleted = @job_tube.delete(id) @event_tube.put({"state" => Kongnomal::Job::DELETED, "tube" => @tube, "id" => beanstalk_job.id, "body" => beanstalk_job.body}.to_json) if deleted == :ok deleted end |
#put(body, pri = 65536, delay = 0, ttr = 120) ⇒ Object
14 15 16 17 18 |
# File 'lib/kongnomal/job_queue.rb', line 14 def put(body, pri=65536, delay=0, ttr=120) job_id = @job_tube.put(body, pri, delay, ttr) @event_tube.put({"state" => Kongnomal::Job::PUT, "tube" => @tube, "id" => job_id, "body" => body}.to_json) job_id end |
#reserve(timeout = nil) ⇒ Object
26 27 28 29 30 |
# File 'lib/kongnomal/job_queue.rb', line 26 def reserve(timeout=nil) beanstalk_job = @job_tube.reserve(timeout) @event_tube.put({"state" => Kongnomal::Job::RESERVED, "tube" => @tube, "id" => beanstalk_job.id, "body" => beanstalk_job.body}.to_json) Kongnomal::Job.new(@event_tube, beanstalk_job, @tube) end |
#yput(obj, pri = 65536, delay = 0, ttr = 120) ⇒ Object
20 21 22 23 24 |
# File 'lib/kongnomal/job_queue.rb', line 20 def yput(obj, pri=65536, delay=0, ttr=120) job_id = @job_tube.yput(obj, pri, delay, ttr) @event_tube.put({"state" => Kongnomal::Job::PUT, "tube" => @tube, "id" => job_id, "body" => YAML.dump(obj)}.to_json) job_id end |