~/talk

Hacking Sidekiq for Fun and Profit

Talkat RubyConf AU 2014 · 2014-02-19..02-21· [ruby]
speakerdeck:sutto
slides:none on file

Sidekiq runs on Redis with Celluloid for threading and handles retries and scheduling out of the box; a team pushes unique jobs middleware as a concrete extension to prevent duplicate API calls, and implements a limit_fetch Lua script to atomically acquire work and enforce per-queue limits. Production reaches surprising scale — about 4–5 million jobs first day with zero Redis failures — and experiments with SQS adapters and EC2 spot autoscaling cut costs dramatically but require idempotent jobs and careful monkey‑patching.

AI-written summary · about

  1. 0:00Intro
  2. 0:44Hacking Sidekiq For Fun!
  3. 1:39Decouple from Request / Response Lifecycle
  4. 2:05Background Jobs in Ruby
  5. 3:39Threaded
  6. 4:17Celluloid
  7. 8:33Scales from a small number of jobs to many
  8. 9:53Bonus: Testing is simple- instantiate and test worker class.
  9. 12:41How do we run jobs?
  10. 15:02Unique Jobs
  11. 16:36Pushing AND Pulling Jobs
  12. 18:08Adjusting Running Instances
  13. 18:55Temporarily pause a queue
  14. 21:00A smart locking algorithm for jobs in Lua
  15. 21:10running on your Applications Redis server
  16. 22:59Replacing the queue
  17. 30:21Opportunity for custom extensions?
  18. 30:53Jobs must be idempotent
  19. 33:49Main Feature: Dead Job Queue For when job fails all retries.
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.