Sha256: 84dd274566b15e3cfe08a2c0d21ab250fb84589d69ae9d71115abfdd4a10ac36

Contents?: true

Size: 1.63 KB

Versions: 10

Compression:

Stored size: 1.63 KB

Contents

module ResqueWeb
  class FailuresController < ResqueWeb::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

10 entries across 10 versions & 3 rubygems

Version Path
resque-web-0.0.12 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.11 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.10 app/controllers/resque_web/failures_controller.rb
misha-resque-web-0.1.1 app/controllers/resque_web/failures_controller.rb
misha-resque-web-0.1.0 app/controllers/resque_web/failures_controller.rb
misha-resque-web-0.0.9 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.9 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.8 app/controllers/resque_web/failures_controller.rb
resque-web-edge-1.0.0 app/controllers/resque_web/failures_controller.rb
resque-web-0.0.7 app/controllers/resque_web/failures_controller.rb