Loading...
Loading...
Master Active Job framework for asynchronous background job processing. Use when building background workers, handling async operations, managing job queues, scheduling recurring tasks, or processing long-running operations. Covers job definition, Solid Queue backend, error handling, and advanced patterns.
npx skill4agent add shivamsinghchahar/rails-skills rails-active-jobrails generate job SendWelcomeEmailclass SendWelcomeEmailJob < ApplicationJob
queue_as :default # Route to 'default' queue
def perform(user_id)
user = User.find(user_id)
UserMailer.welcome(user).deliver_later
end
end# Enqueue immediately
SendWelcomeEmailJob.perform_later(user.id)
# Enqueue with delay
SendWelcomeEmailJob.set(wait: 1.hour).perform_later(user.id)
# Enqueue at specific time
SendWelcomeEmailJob.set(wait_until: 2.days.from_now).perform_later(user.id)
# Enqueue multiple jobs at once
user_ids.map { |id| [id] }.then do |args|
SendWelcomeEmailJob.perform_all_later(args)
endconfig/solid_queue.ymlproduction:
queues:
- name: default
threads: 5
- name: critical
threads: 2
- name: batch
threads: 1
workers:
- name: worker_1
queues: [ default, critical, batch ]
scheduler:
workers: 1| Concept | Description |
|---|---|
| Job | Ruby class defining async work (inherits from ApplicationJob) |
| Queue | Named container for jobs (default, critical, batch, etc.) |
| Enqueue | Add job to queue for processing (perform_later) |
| Worker | Process that executes jobs from queues |
| Retry | Automatic job re-execution after failure |
| Discard | Permanently skip job after error |
| Continuation | Resume job execution in steps (Rails 8+) |