A Ruby job queue that uses PostgreSQL's advisory locks for high performance and ACID reliability.
Que is a Ruby job queue that uses PostgreSQL's advisory locks for high-performance background job processing. It solves the problem of unreliable job execution by providing ACID guarantees and protecting jobs within database transactions, preventing job loss during crashes.
Ruby developers building applications that require reliable background job processing, particularly those already using PostgreSQL who want to avoid additional dependencies like Redis.
Developers choose Que for its unique combination of PostgreSQL integration, transactional safety, and high performance through advisory locking, eliminating common bottlenecks found in other database-backed queues.
A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages PostgreSQL's in-memory advisory locks for high concurrency, avoiding disk I/O bottlenecks and enabling CPU-bound throughput under load, as highlighted in the README.
Jobs are protected within database transactions, ensuring they commit or rollback with other data changes, providing exceptional reliability and preventing job loss during failures.
If a worker process crashes, jobs are automatically released and become available for other workers, eliminating stuck or ambiguous job states without manual intervention.
Uses existing PostgreSQL setup, reducing dependencies like Redis and allowing atomic backups of jobs and application data together, as noted in the value proposition.
Tightly coupled to PostgreSQL's advisory locks, making migration to other databases impossible and limiting flexibility for polyglot persistence strategies.
The job table can suffer from bloat and performance issues under high write loads, especially with long-running transactions, requiring diligent database maintenance as warned in the README.
Requires additional configuration for Rails, such as setting queue names and schema format to :sql, which adds complexity compared to drop-in solutions like Sidekiq.
When used as an Active Job adapter, you lose transactional integrity advantages, forcing a trade-off between standardization and Que's core reliability features.