stolfam / generic-producer-consumer-queue-php
简单的 PHP8 类,用于队列数据流。
1.0.8
2021-12-02 17:11 UTC
Requires
- php: >= 8.0
README
如果你在处理数据流队列(如批量导入或导出)方面遇到困难,可以使用我的简单解决方案。这些是用于队列数据流的简单类。
要求
- PHP 8
准备
通过扩展 抽象类 Message
来准备你的消息。它通过在抽象构造函数中内置的 isValid()
函数防止解析错误。
实现 接口 Consumer
并创建你自己的消费者逻辑。
使用
请参阅 /tests
文件夹中的示例,或从 class Manager
开始
// creating a manager, with storage for messages
$manager = new Manager(new FileStorage(__DIR__ . "/temp"));
添加一个或多个消费者,它们将处理你的消息(数据)
$manager->addConsumer(new \Stolfam\GPCQ\Test\SimpleConsumer());
$manager->addConsumer(new \Stolfam\GPCQ\Test\JsonConsumer());
在你的消费者脚本中,你开始调用函数 run()
,消息将被处理
$manager->run();
在你的生产者脚本中,你可以开始添加消息
$manager->putMessage(new \Stolfam\GPCQ\Test\SimpleMessage($id));
$manager->putMessage(new \Stolfam\GPCQ\Test\JsonMessage(json_encode([
"data" => $data
])));
注意事项
- 你可以在脚本中将
class Manager
的run()
函数作为守护进程运行 - 一个
class Manager
可以处理不同类型的消息。这取决于你添加了多少消费者。
存储
你可以实现自己的消息存储或使用默认的 class FileStorage
。