stolfam/generic-producer-consumer-queue-php

简单的 PHP8 类,用于队列数据流。

1.0.8 2021-12-02 17:11 UTC

This package is auto-updated.

Last update: 2024-08-29 05:44:24 UTC


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 Managerrun() 函数作为守护进程运行
  • 一个 class Manager 可以处理不同类型的消息。这取决于你添加了多少消费者。

存储

你可以实现自己的消息存储或使用默认的 class FileStorage