gitwtfhub

wtf is resque?

inlined/resque — explained in plain English

Analysis updated 2026-08-11 · repo last pushed 2013-01-25

RubyAudience · developerComplexity · 3/5DormantSetup · moderate

TL;DR

Resque is a Ruby tool that moves slow, heavy tasks to the background so your app stays fast. It puts work on a to-do list that background workers pick up and handle later.

Mindmap

mindmap
  root((repo))
    What it does
      Moves slow tasks to background
      Queues jobs for later
      Runs workers across machines
    Tech stack
      Ruby
      Redis
      Rails
    Use cases
      Generate large reports
      Build file archives
      Fire off webhooks
      Update search indexes
    Key features
      Web dashboard
      Retry failed jobs
      Forks child process per job
    Audience
      Ruby on Rails developers
      E-commerce site builders

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Queue a large monthly sales report in an e-commerce app and email it when ready.

REASON 2

Build downloadable file archives in the background without slowing down your website.

REASON 3

Fire off webhooks asynchronously so users are not stuck waiting on a loading screen.

REASON 4

Update a search index or warm a cache behind the scenes using background workers.

What's in the stack?

RubyRedisRails

How it stacks up

inlined/resque0xdevalias/huginn-chef100rabhg/masterdetailapp
LanguageRubyRubyRuby
Last pushed2013-01-252014-09-302024-02-20
MaintenanceDormantDormantDormant
Setup difficultymoderatehardmoderate
Complexity3/54/52/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires Redis as an external dependency to store and manage the job queues.

The explanation does not specify the license, so usage terms are unknown.

Wtf does this do

Resque is a tool for Ruby applications that moves slow, heavy tasks to the background so your app stays fast. If your website needs to do something time-consuming, like building a file archive, updating a search index, or warming a cache, you don't want the user staring at a loading screen while it happens. Instead, Resque lets you put that work on a to-do list, and background "workers" handle it later. At a high level, the system works like a kitchen order line. When your app needs to do a slow task, it writes down a small job ticket and hands it to a queue. Workers act like line cooks: they pick up tickets, do the work, and check for more. You can have multiple queues for different types of work, and you can run workers across multiple machines to handle the load. Anyone building a Ruby on Rails app or similar Ruby service would use this. For example, if you run an e-commerce site, you might want to generate a large monthly sales report. Instead of making an admin wait for the page to load, you queue the report generation. A worker builds the report in the background and emails it when it's done. At GitHub, where this tool originated, they use it for dozens of tasks like building downloadable archives and firing off webhooks. A notable design choice is how the system expects things to break. The workers are built to assume that background jobs will occasionally lock up, run too long, or consume too much memory. To handle this, a worker creates a separate child process for each job. When the job is done, the child process exits, freeing up memory. If a job goes off the rails, the system can easily kill the misbehaving job without skipping a beat. It also includes a built-in web dashboard. This gives you a simple interface to see what your workers are currently doing, which queues are backing up, and, crucially, a place to review and retry jobs that failed.

Yoink these prompts

Prompt 1
I have a Rails app where generating a large report makes the page freeze. How do I use Resque to move that report generation to a background worker and email the user when it is done?
Prompt 2
How do I set up Resque with multiple queues so that high-priority jobs like sending emails are handled before low-priority jobs like building archives?
Prompt 3
I want to monitor my Resque workers and retry failed jobs. How do I access and use the Resque web dashboard in my Rails app?
Prompt 4
Explain how Resque forks a child process for each job and why that helps when a background job locks up or uses too much memory.

Frequently asked questions

wtf is resque?

Resque is a Ruby tool that moves slow, heavy tasks to the background so your app stays fast. It puts work on a to-do list that background workers pick up and handle later.

What language is resque written in?

Mainly Ruby. The stack also includes Ruby, Redis, Rails.

Is resque actively maintained?

Dormant — no commits in 2+ years (last push 2013-01-25).

What license does resque use?

The explanation does not specify the license, so usage terms are unknown.

How hard is resque to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is resque for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.