有关Beanstalkd的基本概念,编译和yum的安装方法已经在上篇文章《Beanstalkd消息/任务队列的详解》中介绍了,今天练习下PHP使用Beanstalkd的过程,我选择的是使用Pheanstalk类来连接Beanstalkd
1.使用Composer安装Pheanstalk
composer require pda/pheanstalk
2.实现代码
php查看beanstalkd状态脚本Status.php
/**
* Created by PhpStorm.
* User: jmsite.cn
* Date: 2019/1/21
* Time: 10:32
*/
require"../vendor/autoload.php";
usePheanstalk\Pheanstalk;
$pheanstalk=newPheanstalk('192.168.75.135',11300);
print_r($pheanstalk->stats());
生产者代码Producter.php
/**
* Created by PhpStorm.
* User: jmsite.cn
* Date: 2019/1/20
* Time: 16:30
*/
require"../vendor/autoload.php";
usePheanstalk\Pheanstalk;
$pheanstalk=newPheanstalk('192.168.75.135',11300);
for($i=0;$i<50;$i++){
$data=array(
'key'=>'testkey'.$i,
'value'=>'testvalue',
'time'=> time(),
//phpfensi.com
);
$ret=$pheanstalk->putInTube('test-tube', json_encode($data), Pheanstalk::DEFAULT_PRIORITY, Pheanstalk::DEFAULT_DELAY, Pheanstalk::DEFAULT_TTR);
var_dump($ret);
}
消费者代码Consumer.php
/**
* Created by PhpStorm.
* User: jmsite.cn
* Date: 2019/1/20
* Time: 16:31
*/
set_time_limit(0);
ini_set('default_socket_timeout', 900);
require"../vendor/autoload.php";
usePheanstalk\Pheanstalk;
$pheanstalk=newPheanstalk('192.168.75.135',11300);
while(true){
$job=$pheanstalk
->watch('test-tube')
->ignore('default')
->reserve();
if($job){