Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 1.18 KB

File metadata and controls

70 lines (49 loc) · 1.18 KB

Simple PHP Queue

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