Skip to content

A simple file system based queue with multiple adapters

Notifications You must be signed in to change notification settings

slowmove/simple-php-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A simple file system based queue with multiple adapters

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages