Sha256: cfc1920952d427cc715e57712799e2ece765a2452f14e91f40c6ec82cdc29284

Contents?: true

Size: 1.62 KB

Versions: 9

Compression:

Stored size: 1.62 KB

Contents

module ResqueWeb
  class FailuresController < ApplicationController

    # Display all jobs in the failure queue
    #
    # @param [Hash] params
    # @option params [String] :class filters failures shown by class
    # @option params [String] :queue filters failures shown by failure queue name
    def index
    end

    # remove an individual job from the failure queue
    def destroy
      Resque::Failure.remove(params[:id])
      redirect_to failures_path(redirect_params)
    end

    # destroy all jobs from the failure queue
    def destroy_all
      queue = params[:queue] || 'failed'
      Resque::Failure.clear(queue)
      redirect_to failures_path(redirect_params)
    end

    # retry an individual job from the failure queue
    def retry
      reque_single_job(params[:id])
      redirect_to failures_path(redirect_params)
    end

    # retry all jobs from the failure queue
    def retry_all
      if params[:queue].present? && params[:queue]!="failed"
        Resque::Failure.requeue_queue(params[:queue])
      else
        (Resque::Failure.count-1).downto(0).each { |id| reque_single_job(id) }
      end
      redirect_to failures_path(redirect_params)
    end

    private

    #API agnostic for Resque 2 with duck typing on requeue_and_remove
    def reque_single_job(id)
      if Resque::Failure.respond_to?(:requeue_and_remove)
        Resque::Failure.requeue_and_remove(id)
      else
        Resque::Failure.requeue(id)
        Resque::Failure.remove(id)
      end
    end

    def redirect_params
      {}.tap do |p|
        if params[:queue].present?
          p[:queue] = params[:queue]
        end
      end
    end

  end
end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
resque-web-clone-0.0.7 app/controllers/resque_web/failures_controller.rb
resque-web-clone-0.0.6 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.6 app/controllers/resque_web/failures_controller.rb
glebtv_resque_web-0.1.0 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.5 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.4 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.3 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.2 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.1 app/controllers/resque_web/failures_controller.rb