用途:在 Rails 8+ 中使用 Active Job 与默认的 Solid Queue 创建、入队和管理后台任务,把邮件、API 调用、数据处理等慢操作移出请求周期。
主要能力:生成作业(bin/rails generate job process_payment,可用 --queue 指定队列);定义队列、优先级与动态队列;用 retry_on、discard_on、after_discard 处理错误;用 perform_later、set(wait/wait_until/priority)、perform_now 入队或同步执行;用 ActiveJob.perform_all_later 批量入队;配置并发限制、循环任务与作业续跑(Rails 8.1+);集成 ActionMailer 的 deliver_later;用 perform_enqueued_jobs、assert_enqueued_with 等测试作业行为与入队。
必要用法:每个作业需显式 queue_as 并定义 retry_on 或 discard_on,perform 必须幂等;参数仅限可序列化类型(基本类型、时间、集合、ActiveRecord 经 GlobalID),其他对象需自定义序列化器;开发环境用 bin/jobs start 启动工作进程。
限制:队列顺序优先于优先级,优先级仅在单队列内生效;批量入队不触发 around_enqueue 回调;Rake 任务中应使用 deliver_now;资料未提供具体收费、价格或平台信息。