bjornbasar/karhu-queue

Minimal queue/worker abstraction for the karhu PHP microframework

Maintainers

Package info

github.com/bjornbasar/karhu-queue

pkg:composer/bjornbasar/karhu-queue

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-04-14 06:55 UTC

This package is auto-updated.

Last update: 2026-04-14 21:52:06 UTC


README

Minimal queue/worker abstraction for the karhu PHP microframework.

Install

composer require bjornbasar/karhu-queue bjornbasar/karhu-db

Push jobs

use Karhu\Queue\DatabaseQueue;
use Karhu\Db\Connection;

$db = new Connection('sqlite:jobs.db');
$queue = new DatabaseQueue($db);

$queue->push('SendEmail', ['to' => 'bjorn@example.com', 'subject' => 'Hello']);

Process jobs

use Karhu\Queue\Worker;

$worker = new Worker($queue);
$worker->register('SendEmail', function (array $data) {
    mail($data['to'], $data['subject'], 'Body here');
});
$worker->run(); // loops until stopped

Schema

CREATE TABLE jobs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    queue VARCHAR(50) NOT NULL DEFAULT 'default',
    job VARCHAR(255) NOT NULL,
    data TEXT NOT NULL DEFAULT '{}',
    status VARCHAR(20) NOT NULL DEFAULT 'pending',
    error TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Custom drivers

Implement QueueInterface for Redis, RabbitMQ, etc.