非空/taurus-publisher-php-lib

使用 LUA 脚本发送任务到 Redis 的 PHP 库,用于 Taurus 队列

7.0.0 2023-11-26 22:59 UTC

This package is auto-updated.

Last update: 2024-09-27 12:13:06 UTC


README

Latest Version codecov CI Build Downloads Old Downloads PRs Welcome Packagist License (custom server)

使用 LUA 脚本发送任务到 Redis 的 PHP 库,用于 Taurus 队列

安装

版本 7.0.0 需要 PHP 8.3

版本 6.0.0 需要 PHP 8.2

版本 5.0.0 需要 PHP 8.1

版本 4.0.0 需要 PHP 7.4

版本 3.0.0 需要 PHP 7.3

版本 2.0.0 需要 PHP 7.2

版本 1.0.0 需要 PHP 7.1

推荐的安装方式是通过 Composer

composer require not-empty/taurus-publisher-php-lib

用法

发布

use TaurusPublisher\TaurusPublisher;
$queue = 'test';
$data = [
	'publisher' => 'example',
];
$taurus = new TaurusPublisher();
$result = $taurus->add(
    $queue,
    $data
);
var_dump($result);

带有 redis 配置的发布

use TaurusPublisher\TaurusPublisher;
$queue = 'test';
$data = [
	'publisher' => 'example',
];
$redisConfig = [
    'scheme' => 'tcp',
    'host'   => 'localhost',
    'port'   => 6379,
];
$taurus = new TaurusPublisher($redisConfig);
$result = $taurus->add(
    $queue,
    $data
);
var_dump($result);

带有队列配置的发布

use TaurusPublisher\TaurusPublisher;
$queue = 'test';
$data = [
	'publisher' => 'example',
];
$taurus = new TaurusPublisher();
$queueConfig = [
    'attempts' => 4,
    'backoff' => 20000,
    'delay' => 1,
    'removeOnComplete' => 20,
];
$result = $taurus->add(
    $queue,
    $data,
    $queueConfig
);
var_dump($result);

循环发布,不超出 Redis 连接数(重用 Redis 连接)

您可以将 Redis 连接传递给持久连接,并允许您循环添加方法,而不会通过连接过载 Redis

use TaurusPublisher\TaurusPublisher;
use Predis\Client as Redis;
$redisConfig = [
    'scheme' => 'tcp',
    'host'   => 'redis',
    'port'   => 6379,
];
$client = new Redis($redisConfig);
$queue = 'test';
$data = [
	'publisher' => 'example',
];
$taurus = new TaurusPublisher(
    $redisConfig,
    [],
    $client
);
for ($i=0; $i < 1000000; $i++) { 
    $result = $taurus->add(
        $queue,
        $data
    );
    var_dump($result);
}

如果您想创建一个运行或测试的环境,您可以像这样构建和安装依赖项

docker build --build-arg PHP_VERSION=8.3-rc-cli -t not-empty/taurus-publisher-php-lib:php83 -f contrib/Dockerfile .

访问容器

docker run -v ${PWD}/:/var/www/html -it not-empty/taurus-publisher-php-lib:php83 bash

验证是否已安装所有依赖项

composer install --no-dev --prefer-dist

然后运行(您需要 Redis)

php sample/publisher-sample.php

开发

想要贡献?太好了!

项目使用简单的代码。更改您的文件时要小心更新!任何新的代码都只有在所有验证都通过的情况下才会被接受。

为了确保整个项目都正常

首先,您需要构建一个正确安装所有依赖项的环境

docker build --build-arg PHP_VERSION=8.3-rc-cli -t not-empty/taurus-publisher-php-lib:php83 -f contrib/Dockerfile .

访问容器

docker run -v ${PWD}/:/var/www/html -it not-empty/taurus-publisher-php-lib:php83 bash

安装所有依赖项

composer install --dev --prefer-dist

运行所有验证

composer check

非空基金会 - 自由代码,充实心灵