一、安装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时间,给任务续命