消费类方法
reserve
设置阻塞时间
release
在消费任务过程中,可能由于某些程序,某些原因导致我们不得不把当前任务放回到管道中去,这就用到了release方法
bury
有时候我们把任务读取出来之后,发现执行后面的逻辑时机还不成熟,或者还不能执行后面的逻辑,需要暂时把这个方法给封存起来。等到条件允许了之后再拿出这个任务进行消费。比如当我们发送邮件的时候,邮件服务器宕机,那我们就暂时把任务封存,等待服务器正常之后再进行发送邮件
读取burried状态的方法
kick
批量的把buried状态的任务设置为ready
peekReady / peekDelayed
test.php
//获取任务的消费者方法
设置管道延迟,取消管道延迟状态
test.php
watch
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->watch('newUsers')
->watch('default');
$tubes=$pheanstalk->listTubesWatched();
print_r($tubes);
?>
reserve
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->watch('newUsers')
->reserve();
var_dump($job);
$pheanstalk->delete($job);
?>
设置阻塞时间
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->watch('newUsers')
->reserve(3); #设置阻塞时间
var_dump($job);
print 'okay....';
?>
release
在消费任务过程中,可能由于某些程序,某些原因导致我们不得不把当前任务放回到管道中去,这就用到了release方法
<?php
$pheanstalk=require 'beanstalkd.php';
$pheanstalk->useTube('newUsers')->put('member_1');
$obj=$pheanstalk->watch('newUsers')->reserve();
$module=false;
if(!$module){
sleep(30);
$pheanstalk->release($job); #当前任务有reserved--->ready
}else{
$pheanstalk->delete($job);
}
bury
有时候我们把任务读取出来之后,发现执行后面的逻辑时机还不成熟,或者还不能执行后面的逻辑,需要暂时把这个方法给封存起来。等到条件允许了之后再拿出这个任务进行消费。比如当我们发送邮件的时候,邮件服务器宕机,那我们就暂时把任务封存,等待服务器正常之后再进行发送邮件
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->watch('newUsers')->reserve();
sleep(30);
$pheanstalk->bury($job);
?>
读取burried状态的方法
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->peekBuried('newUsers');
$stats=$pheanstalk->statsJob($job);
var_dump($stats);
$pheanstalk->kickJob($job); #任务又变成了ready
$stats2=$pheanstalk->statsJob($job);
var_dump($stats2);
kick
批量的把buried状态的任务设置为ready
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->watch('newUsers')->reserve();
$pheanstalk->bury($job); #把任务设置为buried
$pheanstalk->useTube('newUsers')->kick(999); #任务由burried=>ready
?>
peekReady / peekDelayed
demo.php
<?php
$pheanstalk=require 'beanstalkd.php';
$tube=$pheanstalk->useTube('newUsers');
$tube->put('delay',1024,10); #延迟执行的任务
$tube->put('ready'); #准备状态的任务
?>
test.php
//获取任务的消费者方法
<?php
$pheanstalk=require 'beanstalkd.php';
$job=$pheanstalk->peekReady('newUsers'); #读取ready状态的任务
var_dump($job);
$pheanstalk->delete($job);
?>
pauseTube / resumeTube
设置管道延迟,取消管道延迟状态
test.php
<?php
$pheanstalk=require 'beanstalkd.php';
$pheanstalk->pauseTube('newUsers',10);
$job=$pheanstalk->watch('newUsers')->reserve();
var_dump($job);
取消暂停
<?php
$pheanstalk=require 'beanstalkd.php';
$pheanstalk->pauseTube('newUsers',10);
$pheanstalk->resumeTube('newUsers');
$job=$pheanstalk->watch('newUsers')->reserve();
var_dump($job);