Simple file system based PHP queue, with multiple adapters.
Currently implemented
textfile
sqlite
redis
(send in connection string instead of file path, default to localhost)beanstalkd
https://beanstalkd.github.io/
PHP 8.1+
Examples available to run here
<?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");
}
<?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;
});
Enum available here;
enum StorageType: string
{
case FILE = 'file';
case SQLITE = 'sqlite';
case REDIS = 'redis';
case BEANSTALKD = 'beanstalkd';
}
enqueue(string $data): bool
dequeue(): ?string
listen(callable $fn, int $delayWhenEmpty = 5): void
length(): int
content(): array