# queueclassic/queue_classic

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/queueclassic-queue-classic).**

1,188 stars · 152 forks · Ruby · MIT

## Links

- GitHub: https://github.com/QueueClassic/queue_classic
- awesome-repositories: https://awesome-repositories.com/repository/queueclassic-queue-classic.md

## Topics

`activejob` `queue` `queuing`

## Description

Queue Classic is a background processing framework for Ruby applications that manages asynchronous tasks by utilizing relational database tables for job persistence. By storing tasks directly within the database, the system ensures that job creation remains coupled with application transactions, guaranteeing that tasks are only queued when associated data changes are successfully committed.

The framework coordinates concurrent worker processes through database-level locking mechanisms, which prevent redundant execution and allow for distributed task processing without the need for an external message broker. Workers operate by polling the database for pending jobs, supporting both immediate execution and delayed scheduling based on future timestamps.

The system provides a mechanism for offloading time-consuming operations from the main application thread to independent worker processes. It supports custom handler configurations, allowing developers to define specific logic for background tasks while maintaining consistency through the underlying relational storage.

## Tags

### DevOps & Infrastructure

- [Ruby Frameworks](https://awesome-repositories.com/f/devops-infrastructure/background-processing/ruby-frameworks.md) — Provides a background processing framework specifically designed for the Ruby ecosystem using relational database persistence.
- [Asynchronous Task Processing](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-queues/asynchronous-task-processing.md) — Offloads time-consuming operations to background workers to maintain main application thread responsiveness. ([source](https://github.com/queueclassic/queue_classic#readme))
- [Transactional Enqueueing](https://awesome-repositories.com/f/devops-infrastructure/job-scheduling/transactional-enqueueing.md) — Integrates job creation into database transactions to ensure tasks are only queued upon successful data commits. ([source](https://github.com/queueclassic/queue_classic#readme))
- [Delayed Task Scheduling](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/delayed-task-scheduling.md) — Supports deferring job execution until a specified future timestamp by filtering pending tasks in the database.
- [Background Job Processing](https://awesome-repositories.com/f/devops-infrastructure/background-job-processing.md) — Persists tasks into database tables to ensure reliable asynchronous execution outside the main request cycle. ([source](https://github.com/queueclassic/queue_classic#readme))
- [Distributed Task Workers](https://awesome-repositories.com/f/devops-infrastructure/distributed-task-workers.md) — Scales task execution by running multiple independent worker processes that coordinate via database locks.
- [Job Concurrency Controllers](https://awesome-repositories.com/f/devops-infrastructure/job-concurrency-controllers.md) — Manages concurrent task execution across multiple worker processes using database-level locking mechanisms. ([source](https://github.com/queueclassic/queue_classic#readme))
- [Delayed Executions](https://awesome-repositories.com/f/devops-infrastructure/job-execution-engines/delayed-executions.md) — Allows deferring job execution until a specified future time for automatic background processing. ([source](https://github.com/queueclassic/queue_classic#readme))
- [Polling-Based Worker Execution](https://awesome-repositories.com/f/devops-infrastructure/polling-based-worker-execution.md) — Enables worker processes to discover and claim pending work by periodically polling the database.

### Data & Databases

- [PostgreSQL Task Queues](https://awesome-repositories.com/f/data-databases/postgresql-task-queues.md) — Manages asynchronous tasks by leveraging PostgreSQL tables for reliable persistence and transactional queuing.
- [Advisory Locking Mechanisms](https://awesome-repositories.com/f/data-databases/migration-management/advisory-locking-mechanisms.md) — Coordinates concurrent worker processes using database-level advisory locks to prevent redundant task execution.

### Software Engineering & Architecture

- [Database-Backed Persistence](https://awesome-repositories.com/f/software-engineering-architecture/job-processors/database-backed-persistence.md) — Persists background tasks as rows in a relational database to ensure durability and transactional integrity.
- [Database-Backed Deferred Queues](https://awesome-repositories.com/f/software-engineering-architecture/database-backed-deferred-queues.md) — Uses database-level locking and persistence to schedule and defer job execution.
