Module: RocketJob::Plugins::Job::ThrottleRunningJobs

Extended by:
ActiveSupport::Concern
Included in:
Job
Defined in:
lib/rocket_job/plugins/job/throttle_running_jobs.rb

Overview

Throttle the number of jobs of a specific class that are processed at the same time.

Example:

class MyJob < RocketJob::Job
  # Maximum number of jobs of this class to process at the same time.
  self.throttle_running_jobs = 25

  def perform
    # ....
  end
end

Notes:

  • The number of running jobs will not exceed this value.

  • It may appear that a job is running briefly over this limit, but then is immediately back into queued state. This is expected behavior and is part of the check to ensure this value is not exceeded. The worker grabs the job and only then verifies the throttle, this is to prevent any other worker from attempting to grab the job, which would have exceeded the throttle.