Solid Queue is a database-backed Active Job backend designed to enhance job processing in Ruby on Rails applications. It supports delayed jobs, concurrency controls, pausing queues, numeric priorities per job, and bulk enqueuing. Compatible with SQL databases like MySQL, PostgreSQL, and SQLite, Solid Queue leverages the FOR UPDATE SKIP LOCKED
clause to avoid blocking during job polling. It integrates seamlessly with Active Job for retries, error handling, serialization, and delays, and is optimized for Rails' multi-threading capabilities.
Installation involves adding Solid Queue to your Gemfile, running the provided generator to set it as the Active Job adapter, and executing database migrations. The configuration can be customized for various environments, supporting both small projects and large-scale horizontal scaling. It allows running workers and dispatchers on the same or separate servers, with detailed configuration options for polling intervals, batch sizes, concurrency controls, and more.
Solid Queue offers advanced features like concurrency controls to limit the number of simultaneous job executions, ensuring efficient resource utilization. It also supports transactional integrity, allowing jobs to be queued only after database transactions are committed, ensuring data consistency.
For recurring tasks, Solid Queue uses a cron-like scheduling system managed by dispatcher processes. This ensures tasks are enqueued at specified intervals without duplication, even when multiple dispatchers are used.
Solid Queue can be configured to run on a dedicated database, separate from the main application database, enhancing performance and isolation. It also includes a Puma plugin for integrated process management.
Overall, Solid Queue provides a robust, flexible, and efficient solution for managing background jobs in Rails applications, with extensive configuration options and support for modern database features.
Pricing
Pricing information is not available