slowmove/simple-php-queue

A simple, primarily file based, queue with multiple adapters

v0.4 2024-02-28 10:49 UTC

This package is auto-updated.

Last update: 2024-04-28 11:15:24 UTC


README

Simple file system based PHP queue, with multiple adapters.

Currently implemented

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): bool
  • dequeue(): ?string
  • listen(callable $fn, int $delayWhenEmpty = 5): void
  • length(): int
  • content(): array