1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php $beanstalk = new \Beanstalk(); $rel = new \ReflectionClass($beanstalk); echo '<pre>'; //\ReflectionClass::export($beanstalk); //上面方法会显示出该类只有10个方法,可能反射类存在bug无法反射出其他信息 $methods = $rel->getMethods(); print_r($methods); $beanstalkPool = new \BeanstalkPool(); $poolRel = new \ReflectionClass($beanstalkPool); foreach ($methods as $method) { if($method->class == 'Beanstalk') { $methodRel = $rel->getMethod($method->name); print_r($methodRel->getParameters()); //该方法无法反射出参数,可能是反射类存在BUG不能反射扩展类参数信息 }else { $poolMethodRel = $poolRel->getMethod($method->name); print_r($poolMethodRel->getParameters()); } } //最终可反射出10个方法,参数不明 //addserver() use() put() watch() reserve() bury() ignore() delete() kick() list_tubes() //可参照上一篇博客的调用方法,或见以下官网demo |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php //地址:https://github.com/nil-zhang/php-beanstalk/ $bsc = new Beanstalk(); $bsc->addserver("ip1", 11300); $bsc->addserver("ip2", 11300); $tubes = $bsc->list_tubes(); print_r($tubes); for($i = 0; $i < 10; $i++) { $key = "key".$i; $value = "value".$i; $bsc->use($key); $bsc->put($key, $value); echo "$key\t$value\n"; $bsc->watch($key); $job = $bsc->reserve($key); print_r($job); if($bsc->bury($job['id'], $key)) echo "bury ok\n"; else echo "bury failed\n"; $bsc->kick(100, $key); if($bsc->delete($job['id'], $key)) echo "delete ok\n"; else echo "delete failed \n"; $bsc->ignore($key); echo "\n"; } echo "done\n"; |