1-5 beanstalkd消费类

来源:互联网 发布:新技术新工艺软件下载 编辑:程序博客网 时间:2024/05/16 18:02
消费类方法


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


原创粉丝点击