sunkan/percurri

连接到 beanstalkd 服务器的简单客户端

dev-master 2017-11-30 16:46 UTC

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