Sha256: f90d9b10610b23279db20fb762a8f323af14d59bb63d0e9d7e848c04dd821acd

Contents?: true

Size: 1.13 KB

Versions: 22

Compression:

Stored size: 1.13 KB

Contents

module Cron
  #
  # Automatically update Product Version Lifecycle State to EOL If it is past it's EOL date
  # Runs Daily
  #
  class TrimFailedDelayedJobs < TrimCollection
    #
    # Return the failed collection
    #
    def collection
      Delayed::Backend::Mongoid::Job.where(:failed_at.exists => true)
    end

    def archive?(job)
      if 'Delayed::PerformableMethod'.eql?(job.name)

        data = { object: job.failed_object.inspect,
                 method: job.failed_method_name,
                 args: job.failed_args,
                 failed_at: job.failed_at,
                 attempts: job.attempts,
                 locked_by: job.locked_by }
        SlackNotification.say(data, template: :failed_delayed_job)
        true
      else
        false
      end
    rescue StandardError => error
      log_error "Unable to determine if we should archive job: #{job}", error
      false
    end

    #
    # If the slack API is not present, don't delete jobs or we wont know about it.
    #
    def self.valid_environment?
      SystemConfiguration.slack_api_url.present? && Delayed::Backend::Mongoid::Job.count.positive?
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
web47core-0.4.5 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.4.4 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.4.3 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.4.2 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.4.0 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.3.4 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.3.3 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.3.2 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.3.1 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.3.0 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.11 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.10 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.9 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.8 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.7 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.6 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.5 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.4 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.3 lib/app/jobs/cron/trim_failed_delayed_jobs.rb
web47core-0.1.2 lib/app/jobs/cron/trim_failed_delayed_jobs.rb