slowmove / simple-php-queue
A simple, primarily file based, queue with multiple adapters
v0.4
2024-02-28 10:49 UTC
Requires
- php: >=8.1
- pda/pheanstalk: ^5.0
- predis/predis: ^2.2
Requires (Dev)
- pestphp/pest: ^2.34
- pestphp/pest-plugin-type-coverage: ^2.8
This package is auto-updated.
Last update: 2026-03-18 14:37:25 UTC
README
Simple file system based PHP queue, with multiple adapters.
Currently implemented
textfilesqliteredis(send in connection string instead of file path, default to localhost)beanstalkdhttps://beanstalkd.github.io/
Requirements
PHP 8.1+
Usage examples
Examples available to run here
Producer
<?php
use Slowmove\SimplePhpQueue\Queue;
use Slowmove\SimplePhpQueue\Storage\StorageType;
$queue = new Queue(StorageType::SQLITE, "./queue.db");
for ($i = 0; $i < 150; $i++) {
$queue->enqueue("test $i");
}
Consumer
<?php
use Slowmove\SimplePhpQueue\Queue;
use Slowmove\SimplePhpQueue\Storage\StorageType;
$queue = new Queue(StorageType::SQLITE, "./queue.db", true);
$queue->listen(function ($item) {
echo $item . PHP_EOL;
});
Types
Enum available here;
enum StorageType: string
{
case FILE = 'file';
case SQLITE = 'sqlite';
case REDIS = 'redis';
case BEANSTALKD = 'beanstalkd';
}
Methods
enqueue(string $data): booldequeue(): ?stringlisten(callable $fn, int $delayWhenEmpty = 5): voidlength(): intcontent(): array