Tente novamente um subconjunto de trabalhos com falha no Resque 1.x

Copie o snippet abaixo e cole-o em um console do Rails

def retry_if(&should_retry)
redis
= Resque.redis

(0...Resque::Failure.count).each do |i|
serialized_job
= redis.lindex(:failed, i)
job
= Resque.decode(serialized_job)

next unless should_retry.(job)
Resque::Failure.requeue(i)
end
end

Para tentar novamente um subconjunto de tarefas com falha, digamos notificações por e-mail que falharam devido a erros smtp

retry_if do |job|
job
['payload']['class'] == 'SendEmailNotifications' && job['exception'] == 'Net::SMTPServerBusy'
end

Se você quiser pular tarefas que já foram tentadas novamente

retry_if do |job|
if job['payload']['class'] == 'SendEmailNotifications' && job['exception'] == 'Net::SMTPServerBusy'
if !job['retried_at']
next true
end
end

false
end