slowmove/simple-php-queue

一个简单、主要基于文件的队列,具有多个适配器

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

This package is auto-updated.

Last update: 2024-09-04 14:47:34 UTC


README

基于简单文件系统的PHP队列,具有多个适配器。

当前实现

要求

  • PHP 8.1+

使用示例

示例在此处可运行 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;
});

类型

可用的枚举 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