nepster-web/php-simple-queue

基于数据库的PHP简单队列实现。

1.0.0-Alpha-5 2021-05-08 20:01 UTC

This package is auto-updated.

Last update: 2024-09-09 03:48:50 UTC


README

此包正在开发中。此应用程序的API类可能会更改。

PHP Simple Queue

Release Build Coverage Downloads License

Example of work

简介

PHP Simple Queue - 一个用于通过队列异步运行任务的库。它是现成的、经过实战检验的简单消息解决方案,适用于PHP。

它支持基于DB的队列。

要求

您需要至少PHP 7.4(它最适合PHP 8)。

安装

安装此扩展的首选方式是通过composer

运行以下命令

php composer.phar require --prefer-dist nepster-web/php-simple-queue

或者添加

"nepster-web/php-simple-queue": "*"

💻 基本用法

创建传输(更多信息

$transport = new \Simple\Queue\Transport\DoctrineDbalTransport($connection);

向队列发送新消息(生产)

$config = \Simple\Queue\Config::getDefault()
    ->registerProcessor('my_queue', static function(\Simple\Queue\Context $context): string {
        // Your message handling logic
        return \Simple\Queue\Consumer::STATUS_ACK;
    });
    
$producer = new \Simple\Queue\Producer($transport, $config);

$message = $producer->createMessage('my_queue', ['key' => 'value']);

$producer->send($message);

作业调度(生产)

$config = \Simple\Queue\Config::getDefault()
    ->registerJob(MyJob::class, new MyJob());

$producer = new \Simple\Queue\Producer($transport, $config);

$producer->dispatch(MyJob::class, ['key' => 'value']);

从队列处理消息(消费)

$producer = new \Simple\Queue\Producer($transport, $config);
$consumer = new \Simple\Queue\Consumer($transport, $producer, $config);

$consumer->consume();

有关更多详细信息,请参阅示例代码和阅读指南

测试

要本地运行测试,请在根目录中执行以下操作

./vendor/bin/phpunit

或者您可以在Docker容器中运行测试

cd .docker
make build
make start 
make composer cmd='test'

📖 文档

请参阅官方指南

📚 资源

📰 更新日志

每个版本的详细更改都记录在CHANGELOG.md中。

🔒 许可证

有关许可权和限制条件,请参阅MIT许可证文件(MIT)。