非空 / taurus-publisher-php-lib
使用 LUA 脚本发送任务到 Redis 的 PHP 库,用于 Taurus 队列
7.0.0
2023-11-26 22:59 UTC
Requires
- php: ^8.3
- not-empty/ulid-php-lib: ^7.0
- predis/predis: ^1.1.10
Requires (Dev)
- mockery/mockery: ^1.6
- phpmd/phpmd: ^2.14
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
README
使用 LUA 脚本发送任务到 Redis 的 PHP 库,用于 Taurus 队列
安装
推荐的安装方式是通过 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
非空基金会 - 自由代码,充实心灵