用途:在 Rails 8 应用中配置 Solid Queue 作为后台任务处理后端,并创建、配置和测试后台作业。
主要能力:Solid Queue 基于数据库存储,无需 Redis;支持内置并发控制、优先级和多队列;可处理关键任务;可通过 Mission Control 提供网页界面。
安装:在 Gemfile 添加 solid_queue 后执行 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 立即入队,set(wait:) 延迟,set(wait_until:) 指定时间,set(queue:) 指定队列,perform_now 立即执行。
定时任务:通过 config/recurring.yml 配置 class 与 schedule。
运行:开发环境执行 bin/rails solid_queue:start,生产环境可通过 Procfile 以 worker 方式启动。
监控:可引入 mission_control-jobs 并挂载路由,或通过控制台查询待处理、失败作业并重试或清理。
适用场景:Rails 8 应用的后台邮件、支付处理、通知、定时报表、数据同步等。
限制:资料未提供性能基准、版本兼容范围、生产部署细节、具体收费与价格信息;以上均暂未提供。