sunkan / percurri
连接到 beanstalkd 服务器的简单客户端
Requires
- php: >=7.0.0
- psr/log: ~1.0
Requires (Dev)
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-08-24 08:52:07 UTC
README
安装
安装此库的首选方法是使用 Composer,在项目根目录中运行以下命令
$ composer require sunkan/percurri
使用
简单示例
$connection = new Percurri\Connection($host, $port); $logger = new Psr3Logger(); $workerClient = new Percurri\WorkerClient($connection, $logger); $producerClient = new Percurri\ProducerClient($connection, $logger); $data = 'test data'; $tube = 'test-tube'; $producerClient->tube($tube)->put($data); $workerClient->watch($tube); $job = $workerClient->reserve(); //do job //then delete from beanstalkd $workerClient->delete($job);
API
连接
构造函数
Connection(string $host, int $port = 11300, bool $persistent = true, int $timeout = 1)
连接相关函数
connect(): bool
disconnect(): bool
isConnected(): bool
从套接字读取。
如果指定了长度,则从缓冲区中读取该数量的数据,否则查找第一个换行符,返回缓冲区中的原始字符串
read($length = null): string
向套接字写入
如果您想以特定的格式格式化有效负载,可以指定一个格式。例如:write('put', $payload, "%d %d %d %d\r\n%s");
write(string $command, array $payload, string $format = null): int
生产者客户端
构造函数
记录器必须是符合 Psr3 兼容的记录器实例
__construct(Connection $connection, LoggerInterface $logger)
放置
优先级指定为 0
为最重要,4294967295
为最不重要
如果没有选择管道,则将作业放入 default
管道
put(string $data, int $pri = 100, int $delay = 0, int $ttr = 30): int
选择管道
tube(string $tube): self
获取当前管道
currentTube(): string|bool
暂停管道
防止工作者在 delay
秒内保留管道中的任何新作业
pause(string $tube, int $delay): bool
工作者客户端
构造函数
记录器必须是符合 Psr3 兼容的记录器实例
__construct(Connection $connection, LoggerInterface $logger, Factory $jobFactory, DecoderInterface $decoder)
监视管道
选择要监视的管道。返回监视列表中的管道数
watch(string $tube): int
忽略管道
从监视列表中删除管道
ignore(string $tube): int|false
列出监视的管道
listTubes(): array
保留作业
如果指定了超时,则只会等待那么长时间来等待作业
reserve(int $timeout = null): JobInterface
删除作业
idOrJob
可以是 JobInterface
的实例或一个 integer
delete($idOrJob): bool
释放作业
将保留的作业放回就绪队列。
idOrJob
可以是 JobInterface
的实例或一个 integer
release($idOrJob, int $pri, int $delay): bool
掩埋作业
idOrJob
可以是 JobInterface
的实例或一个 integer
bury($idOrJob, int $pri): bool
触摸作业
工作者请求更多时间来处理作业
idOrJob
可以是 JobInterface
的实例或一个 integer
touch($idOrJob, int $pri): bool
查看作业
查看作业但不保留它
idOrJob
可以是 JobInterface
的实例或一个 integer
peek($idOrJob): JobInterface
查看就绪队列
peekReady(): JobInterface
查看延迟作业
peekDelayed(): JobInterface
查看掩埋队列
peekBuried(): JobInterface
从掩埋队列中踢出作业
bound
是要踢入就绪队列的作业数
kick(int $bound): int
踢出作业
将作业踢入就绪队列
idOrJob
可以是 JobInterface
的实例或一个 integer
kickJob($idOrJob): JobInterface
统计客户端
构造函数
记录器必须是符合 Psr3 兼容的记录器实例
__construct(Connection $connection, LoggerInterface $logger, DecoderInterface $decoder)
作业统计信息
idOrJob
可以是 JobInterface
的实例或一个 integer
statsJob($idOrJob): array
管道统计信息
statsTube(string $tube): array
系统统计信息
stats(): array
列出可用管道
listTubes(): array