用途:在 Rails 8 应用中配置 Solid Queue 作为 Active Job 后台作业后端。Solid Queue 是 Rails 8 默认的 Active Job 后端,基于数据库,无需 Redis,内置并发控制,支持优先级与多队列,并可通过 Mission Control 提供 Web UI。
主要能力与用法: 安装:bundle add solid_queue、bin/rails solid_queue:install、bin/rails db:migrate。 配置:在 config/solid_queue.yml 中设置 dispatchers 与 workers(队列、线程数、进程数、轮询间隔),并在 config/application.rb 中设置 config.active_job.queue_adapter = :solid_queue。 创建作业:继承 ApplicationJob,使用 queue_as 指定队列;可用 retry_on、discard_on、rescue_from 处理错误;通过定义 priority 方法设置优先级(数值越小优先级越高)。 入队:perform_later 异步执行,perform_now 同步执行;可用 set(wait:)、set(wait_until:)、set(queue:) 控制延迟、时间与队列。 定时任务:在 config/recurring.yml 中按环境定义 class、schedule、queue。 测试:使用 ActiveJob::TestCase 与 assert_enqueued_with、assert_enqueued_emails、perform_enqueued_jobs 等断言。 运行与监控:开发环境用 bin/rails solid_queue:start;生产环境可在 Procfile 中配置 worker;可选挂载 mission_control-jobs 到 /jobs;也可在控制台查询 SolidQueue::Job 与 SolidQueue::FailedExecution。
适用场景:Rails 8 应用需要后台处理、异步邮件、支付、定时清理与数据同步等任务。
限制:资料未提供性能基准、具体版本兼容范围、部署平台细节及收费信息;示例代码需按实际项目调整。