fyre/queue

一个队列库。

v2.0.11 2024-06-29 06:55 UTC

This package is auto-updated.

Last update: 2024-09-29 07:31:22 UTC


README

FyreQueue 是一个免费的、开源的 PHP 队列库。

目录

安装

使用 Composer

composer require fyre/queue

在 PHP 中

use Fyre\Queue\QueueManager;

方法

清除

清除所有实例和配置。

QueueManager::clear();

获取配置

设置 队列 配置。

  • $key 是一个表示 队列 键的字符串。
$config = QueueManager::getConfig($key);

或者,如果省略了 $key 参数,将返回包含所有配置的数组。

$config = QueueManager::getConfig();

获取键

获取 队列 实例的键。

$key = QueueManager::getKey($queue);

检查配置

检查是否存在 队列 配置。

  • $key 是一个表示 队列 键的字符串,默认为 QueueManager::DEFAULT
$hasConfig = QueueManager::hasConfig($key);

检查是否加载

检查 队列 实例是否已加载。

  • $key 是一个表示 队列 键的字符串,默认为 QueueManager::DEFAULT
$isLoaded = QueueManager::isLoaded($key);

加载

加载一个 队列

  • $options 是一个包含配置选项的数组。
$queue = QueueManager::load($options);

推送

将作业推送到 队列

  • $className 是一个表示作业类的字符串。
  • $arguments 是一个包含将传递给作业的参数的数组。
  • $options 是一个包含 消息 选项的数组。
    • config 是一个表示配置键的字符串,默认为 "default"。
    • queue 是一个表示 队列 名称的字符串,默认为 "default"。
    • method 是一个表示类方法的字符串,默认为 "run"。
    • delay 是一个表示作业应该在多少秒后运行的数字,默认为 0
    • expires 是一个表示作业在多少秒后过期的数字,默认为 0
QueueManager::push($className, $arguments, $options);

设置配置

设置 队列 配置。

  • $key 是一个表示 队列 键的字符串。
  • $options 是一个包含配置选项的数组。
QueueManager::setConfig($key, $options);

或者,可以提供一个包含配置选项键/值的单个数组。

QueueManager::setConfig($config);

卸载

卸载一个 队列

  • $key 是一个表示 队列 键的字符串,默认为 QueueManager::DEFAULT
$unloaded = QueueManager::unload($key);

使用

加载一个共享的 队列 实例。

  • $key 是一个表示 队列 键的字符串,默认为 "default"
$queue = QueueManager::use($key);

队列

您可以通过指定上面变量 $optionsclassName 选项来加载特定的队列。

可以通过扩展 \Fyre\Queue\Queue 创建自定义队列,确保实现所有下面的方法。

清除

清除队列中的所有项目。

  • $queueName 是一个表示队列名称的字符串。
$queue->clear($queueName);

获取监听器

获取队列 监听器

$queue->getListener();

弹出

从队列中弹出最后一个元素。

  • $queueName 是一个表示队列名称的字符串。
$message = $queue->pop($queueName);

推送

将一个项目推入队列。

  • $queueName 是一个表示队列名称的字符串。
  • $message 是一个 消息
$queue->push($queueName, $message);

Redis

Redis 队列可以使用自定义配置来加载。

  • $key 是表示队列键的字符串。
  • $options 是一个包含配置选项的数组。
    • className 必须设置为 \Fyre\Queue\Handlers\RedisQueue
    • listener 是表示 监听器 类的字符串,默认为 \Fyre\Queue\Listener
    • host 是表示 Redis 主机的字符串,默认为 "127.0.0.1"。
    • password 是表示 Redis 密码的字符串。
    • port 是表示 Redis 端口的数字,默认为 6379
    • database 是表示 Redis 数据库的字符串。
    • timeout 是表示连接超时的数字。
QueueManager::setConfig($key, $options);

$queue = QueueManager::use($key);

工作者

工作进程是长时间运行的任务,将消耗并执行队列中的作业。

use Fyre\Queue\Worker;
  • $options 是一个包含配置选项的数组。
    • config 是一个表示配置键的字符串,默认为 "default"。
    • queue 是表示队列名称的字符串,默认为 "default"。
    • maxJobs 是表示要执行的最多作业数量的数字,默认为 0
    • maxRuntime 是表示工作进程应运行的最大秒数的数字,默认为 0
$worker = new Worker($options);

运行

运行工作进程。

$worker->run();

监听器

您可以通过指定上面 $options 变量的 listener 选项来使用特定的监听器。

可以通过扩展 \Fyre\Queue\Listener 来创建自定义监听器,确保实现以下所有方法。

异常

处理消息异常。

  • $message消息
  • $exception 是异常。
$listener->exception($message, $exception);

失败

处理失败的消息。

$listener->failure($message);

无效

处理无效的消息。

$listener->invalid($message);

启动

处理启动消息。

$listener->start($message);

成功

处理成功消息。

$listener->success($message);

消息

消息用于在 队列工作进程监听器 之间传递数据。

use Fyre\Queue\Message;
  • $options 是包含消息选项的数组。
    • className 是表示作业类的字符串。
    • arguments 是包含将传递给作业的参数的数组。
    • config 是一个表示配置键的字符串,默认为 "default"。
    • queue 是表示队列名称的字符串,默认为 "default"。
    • method 是一个表示类方法的字符串,默认为 "run"。
    • delay 是一个表示作业应该在多少秒后运行的数字,默认为 0
    • expires 是一个表示作业在多少秒后过期的数字,默认为 0
$message = new Message($options);

获取参数

获取消息参数。

$arguments = $message->getArguments();

获取回调

获取消息回调。

$callback = $message->getCallback();

获取配置

获取消息配置

$config = $message->getConfig();

获取哈希

获取消息哈希。

$hash = $message->getHash();

是否过期

确定消息是否已过期。

$isExpired = $message->isExpired();

是否就绪

确定消息是否就绪。

$isReady = $message->isReady();

是否唯一

确定消息是否唯一。

$isUnique = $message->isUnique();

是否有效

确定消息是否有效。

$isValid = $message->isValid();