Normally Resque saves failed jobs in Redis, so you can both check the backtrace and retry the job. These feature is made up of Failure Backend mechanism. Let's write a simple email notification class and study about Failure Backend deeply.

You can use your own Failure Backend in three steps.

Create a class inherited the Resque::Failure::Base

Define save method then write something you want to do (e.g. sending email)

The default Failure Backend is Resque::Failure::Redis so failed jobs are saved to Redis. To use your own class, assign the Failure Backend class to Resque::Failure.backend=. But probably you want to use both Redis store and email notification, so try to use Resque::Failure::Multiple and to use multiple failure backends at a same time.

When a job failed, you can receive an email notification without spoiling Redis store.