PHP 第18章 使用Pheanstalk实现消息队列 PHP 第18章 使用Pheanstalk实现消息队列

2022-08-22

一、安装beanstalkd

Beanstalk 是一个简单、快速的消息队列。Beanstalkd 之于 RabbitMQ,就好比 Nginx 之于 Apache,Varnish 之于 Squid。后面在项目中使用 Beanstalkd 的过程中,更发现其简单、轻量级、高性能、易使用等特点,以及优先级、多队列、持久化、分布式容错、超时控制等特性。

安装:

wget https://github.com/kr/beanstalkd/archive/v1.10.tar.gz

tar xzvf beanstalkd-1.10.tar.gz

cd beanstalkd-1.10

make && make install

beanstalkd -v beanstalkd 1.10 2

启动

进入解压的文件夹里面使用
beanstalkd -l 127.0.0.1 -p 11300 &

二、安装pheanstalk依赖

composer require pda/pheanstalk

官网:https://github.com/pheanstalk/pheanstalk

三、Pheanstalk使用方法

维护:

stats() 查看状态方法        

listTubes() 目前存在的管道

listTubesWatched() 目前监听的管道        

statsTube() 管道的状态        

useTube() 指定使用的管道        

statsJob() 查看任务的详细信息        

peek() 通过任务ID获取任务

生产者:

putInTube() 往管道中写入数据        

put() 配合useTube()使用

消费者:

watch() 监听管道,可以同时监听多个管道        

ignore() 不监听管道        

reserve() 以阻塞方式监听管道,获取任务        

reserveFromTube()        

release() 把任务重新放回管道        

bury() 把任务预留        

peekBuried() 把预留任务读取出来        

kickJob() 把buried状态的任务设置成ready        

kick() 批量把buried状态的任务设置成ready        

peekReady() 把准备好的任务读取出来        

peekDelayed() 把延迟的任务读取出来        

pauseTube() 给管道设置延迟        

resumeTube() 取消管道延迟        

touch() 让任务重新计算ttr时间,给任务续命

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 579