beanstalkd
by
Bodo Tasche
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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