fyre / queue
一个队列库。
v2.0.11
2024-06-29 06:55 UTC
Requires
- fyre/command: ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/filesystem: ^2.0
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreQueue 是一个免费的、开源的 PHP 队列库。
目录
安装
使用 Composer
composer require fyre/queue
在 PHP 中
use Fyre\Queue\QueueManager;
方法
清除
清除所有实例和配置。
QueueManager::clear();
获取配置
设置 队列 配置。
$key
是一个表示 队列 键的字符串。
$config = QueueManager::getConfig($key);
或者,如果省略了 $key
参数,将返回包含所有配置的数组。
$config = QueueManager::getConfig();
获取键
获取 队列 实例的键。
$queue
是一个 队列。
$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);
队列
您可以通过指定上面变量 $options
的 className
选项来加载特定的队列。
可以通过扩展 \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);
失败
处理失败的消息。
$message
是 消息。
$listener->failure($message);
无效
处理无效的消息。
$message
是 消息。
$listener->invalid($message);
启动
处理启动消息。
$message
是 消息。
$listener->start($message);
成功
处理成功消息。
$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();