<commit_before># queue_classic
v1.0.0

queue_classic is a PostgreSQL-backed queueing library that is focused on
concurrent job locking, minimizing database load & providing a simple &
intuitive user experience.

queue_classic features:

* Support for multiple queues with heterogeneous workers
* Utilization of Postgres' PUB/SUB
* JSON encoding for jobs
* Forking workers
* Postgres' rock-solid locking mechanism
* Long term support

## Proven

I wrote queue_classic to solve a production problem.  My problem was that I needed a
queueing system that wouldn't fall over should I decide to press it nor should it freak out 
if I attached 100 workers to it. However, my problem didn't warrant adding an additional service. 
I was already using PostgreSQL to manage my application's data, why not use PostgreSQL to pass some messages? 
PostgreSQL was already handling thousands of reads and writes per second anyways. Why not add 35 more 
reads/writes per second to my established performance metric? 

queue_classic handles over **3,000,000** jobs per day. It does this on Heroku's Ronin Database.


## Quick Start

See doc/installation.md for Rails instructions

```bash
  $ createdb queue_classic_test
  $ psql queue_classic_test
  psql=# CREATE TABLE queue_classic_jobs (id serial, details text, locked_at timestamp);
  psql=# CREATE INDEX queue_classic_jobs_id_idx ON queue_classic_jobs (id);
  $ export QC_DATABASE_URL="postgres://username:password@localhost/queue_classic_test"
  $ gem install queue_classic
  $ ruby -r queue_classic -e "QC::Database.new.load_functions"
  $ ruby -r queue_classic -e "QC.enqueue("Kernel.puts", "hello world")"
  $ ruby -r queue_classic -e "QC::Worker.new.start"
```

## Configure

```bash

# Enable logging.<commit_msg>Fixed quote issue in the README, nested double quotes were messing things up. Switched interior double quotes to single quotes.<commit_after># queue_classic
v1.0.0

queue_classic is a PostgreSQL-backed queueing library that is focused on
concurrent job locking, minimizing database load & providing a simple &
intuitive user experience.

queue_classic features:

* Support for multiple queues with heterogeneous workers
* Utilization of Postgres' PUB/SUB
* JSON encoding for jobs
* Forking workers
* Postgres' rock-solid locking mechanism
* Long term support

## Proven

I wrote queue_classic to solve a production problem.  My problem was that I needed a
queueing system that wouldn't fall over should I decide to press it nor should it freak out 
if I attached 100 workers to it. However, my problem didn't warrant adding an additional service. 
I was already using PostgreSQL to manage my application's data, why not use PostgreSQL to pass some messages? 
PostgreSQL was already handling thousands of reads and writes per second anyways. Why not add 35 more 
reads/writes per second to my established performance metric? 

queue_classic handles over **3,000,000** jobs per day. It does this on Heroku's Ronin Database.


## Quick Start

See doc/installation.md for Rails instructions

```bash
  $ createdb queue_classic_test
  $ psql queue_classic_test
  psql=# CREATE TABLE queue_classic_jobs (id serial, details text, locked_at timestamp);
  psql=# CREATE INDEX queue_classic_jobs_id_idx ON queue_classic_jobs (id);
  $ export QC_DATABASE_URL="postgres://username:password@localhost/queue_classic_test"
  $ gem install queue_classic
  $ ruby -r queue_classic -e "QC::Database.new.load_functions"
  $ ruby -r queue_classic -e "QC.enqueue('Kernel.puts', 'hello world')"
  $ ruby -r queue_classic -e "QC::Worker.new.start"
```

## Configure

```bash

# Enable logging.
{'fraction_non_alphanumeric': 0.06646442360728075, 'fraction_numerical': 0.00827357970215113, 'mean_word_length': 4.85, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3537786', 'n_tokens_mistral': 1116, 'n_tokens_neox': 1031, 'n_words': 442}