1-5 beanstalkd消费类

消费类方法


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);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值