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-04-18 14:48:35 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