beanstalkd
by
Bodo Tasche
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
submit
Slide 2
Slide 2 text
submit
Slide 3
Slide 3 text
@bitboxer @bitcrowd Bodo Tasche
Slide 4
Slide 4 text
Queues!
Slide 5
Slide 5 text
create table 'job_queue';
Slide 6
Slide 6 text
gem install delayed_job
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
beanstalkd
Slide 9
Slide 9 text
Beanstalkd is a simple, fast work queue.
Slide 10
Slide 10 text
brew install beanstalkd
Slide 11
Slide 11 text
https://kr.github.io/beanstalkd/
Slide 12
Slide 12 text
beanstalkd -p 11300
Slide 13
Slide 13 text
gem install beaneater
Slide 14
Slide 14 text
@beanstalk = Beaneater::Pool.new( [’localhost:11300’] )
Slide 15
Slide 15 text
@tube = @beanstalk.tubes['email'] @tube.put '{"key" : "foo"}', :pri => 5 @tube.put '{"key" : "bar"}', :delay => 3
Slide 16
Slide 16 text
@beanstalk.jobs.register('email') do |job| json = Oj.load(job.body) puts "job value is #{json["key"]}!" end ! @beanstalk.jobs.process!
Slide 17
Slide 17 text
@beanstalk.jobs.register( 'email', :retry_on => [SomeError], :max_retries => 2 )
Slide 18
Slide 18 text
@tube.put '{"key" : "bar"}', :ttr => 120
Slide 19
Slide 19 text
@beanstalk.jobs.register('email') do |job| # Long running stuff job.touch end
Slide 20
Slide 20 text
• ready • delayed • buried
Slide 21
Slide 21 text
job = @tube.peek(:buried)
Slide 22
Slide 22 text
job.kick
Slide 23
Slide 23 text
job.delete
Slide 24
Slide 24 text
Beaneater.configure do |config| config.default_put_delay = 0 config.default_put_pri = 65536 config.default_put_ttr = 120 end
Slide 25
Slide 25 text
@beanstalk.stats
Slide 26
Slide 26 text
@beanstalk.tubes['email'].stats
Slide 27
Slide 27 text
https://github.com/kr/beanstalkd/wiki/Tools
Slide 28
Slide 28 text
beanstalkd
Slide 29
Slide 29 text
@bitsofberlin http://bitsofberlin.org