README.rdoc in em-jack-0.0.8 vs README.rdoc in em-jack-0.0.9

- old
+ new

@@ -1,12 +1,10 @@ = EMJack An attempt to wrap portions of the Beanstalk protocol with EventMachine. Every command -will return a deferrable object. That object will succeed or fail depending on the +will return a deferrable object. That object will succeed or fail depending on the reply returned from Beanstalk. -The current, default, errback is to print the error message received. - One thing to keep in mind. The Beanstalk protocol executes all commands serially. So, if you send a reserve command and there are no jobs Beanstalk _won't_ process any of the commands that come after the reserve until the reserve completes. This is a bit of a gotcha when sending a series of reserve, delete, etc and there @@ -17,41 +15,42 @@ - RSpec (to run the tests) = Examples EM.run { jack = EMJack::Connection.new - + r = jack.use('mytube') r.callback { |tube| puts "Using #{tube}" } - + r = jack.reserve r.callback do |job| puts job.jobid r2 = jack.delete(job) { puts "Successfully deleted" } end - + r = jack.put("my message", :ttr => 300) { |jobid| puts "put successful #{jobid}" } - + r = jack.stats r.callback { |stats| puts "Server up for #{stats['uptime']} seconds" } - + r = jack.stats(:tube, "mytube") r.callback { |stats| puts "Total jobs #{stats['total-jobs']}" } - + r = jack.list(:used) r.callback { |tubes| puts "There are #{tubes.length} tubes defined" } } Each of the Jack commands allows an optional block to be provided. If the block is given it will be setup as the callback on the deferrable. - EMJack#each_job is useful for scenarios where the client is a job worker - and intended to process jobs continuously as they become available. Once + EMJack#each_job is useful for scenarios where the client is a job worker + and intended to process jobs continuously as they become available. Once the queue is empty, the client will block and wait for a new job. If multiple workers connect to the queue Beanstalkd will round-robin between the workers. + EM.run { jack = EMJack::Connection.new jack.each_job do |job| puts "Got job ##{job.jobid}: #{job}"