Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lessons learned in building RQ

Lessons learned in building RQ

Creating libraries is easy. Creating libraries that are pleasurable to write and use is another thing. This talk discusses RQ (a simple asynchronous job queue library for Python) as an example of the latter. After introducing the project itself, I reflect on the reasons for its existence and the key design principles that were applied when shaping the project.

I gave this presentation at the Python devroom at FOSDEM'13 in Brussels.

Vincent Driessen

February 03, 2013
Tweet

Other Decks in Programming

Transcript

  1. The Problem But now you want to send an email.

    Or do some data mining. Or warm up a cache. Or generate thumbnails.
  2. The Problem And you don't want to do it in

    the request-response cycle.
  3. The Problem You have to learn about Rabbit MQ, AMQP,

    channels, exchanges, routing keys, configure a result store, run DB migrations, etc.
  4. RQ

  5. Simplicity Zero-config No need to define queues You only need

    a Redis connection You probably have that already!
  6. I’ve spent countless hours building it but it’s finally finished!

    Hey, look at this awesome feature I built! ZOMG, that’s awesome! *drools*
  7. But… I’ve spent countless hours building it! Hey, look at

    this awesome feature I built! Don’t want it.
  8. But… I’ve spent countless hours building it! Hey, look at

    this awesome feature I built! Don’t want it. Still don’t want it.
  9. 0.4

  10. 0.5