PHP使用Beanstalkd的案例

  介绍

这篇文章将为大家详细讲解有关PHP使用Beanstalkd的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强> 1。使用作曲家安装Pheanstalk

作曲家需要pda/Pheanstalk

<强> 2。实现代码

php查看beanstalkd状态脚本状态。php

 

生产者代码生产者。php

“testkey”。我美元,
  “价值”=>“testvalue”,
  '时间'=>时间(),
  );
  ret=pheanstalk美元-> putInTube(“试管”,json_encode(元数据),pheanstalk:: DEFAULT_PRIORITY, pheanstalk:: DEFAULT_DELAY, pheanstalk:: DEFAULT_TTR);
  var_dump (ret)美元;
  }

消费者代码消费者。php

 

打开命令行/终端窗口,执行生产者,会向管写入50条任务

p E: \ repository \ \ beanstalk>工作;php。\ Producter.php   int (101)   int (102)   int (103)   int (104)   int (105)   int (106)   int (107)   int (108)   int (109)   int (110)   int (111)   int (112)   int (113)   int (114)   …

由此可见,美元pheanstalk→putInTube成功后返回的是工作的id

查看状态

p E: \ repository \ \ beanstalk>工作;php Status.php   Pheanstalk \ \ ArrayResponse响应对象   (   [_name: Pheanstalk \ \ ArrayResponse回应:私人]=比;好吧   (存储:ArrayObject:私人)=比;数组   (   [current-jobs-urgent]=比;0   [current-jobs-ready]=比;50   [current-jobs-reserved]=比;0   [current-jobs-delayed]=比;0   [current-jobs-buried]=比;0   ……

结果中显示处于准备好待读取状态的工作是50个

打开两个或以上命令行/终端窗口,执行消费者,模拟多消费者竞争

消费者1

p E: \ repository \ \ beanstalk>工作;php。\ Consumer.php   {“key":“testkey0",“value":“testvalue",“time": 1548039103}   {“key":“testkey1",“value":“testvalue",“time": 1548039103}   {“key":“testkey2",“value":“testvalue",“time": 1548039103}   {“key":“testkey4",“value":“testvalue",“time": 1548039103}   {“key":“testkey6",“value":“testvalue",“time": 1548039103}   {“key":“testkey8",“value":“testvalue",“time": 1548039103}   {“key":“testkey10",“value":“testvalue",“time": 1548039103}   {“key":“testkey12",“value":“testvalue",“time": 1548039103}   {“key":“testkey14",“value":“testvalue",“time": 1548039103}   {“key":“testkey16",“value":“testvalue",“time": 1548039103}   {“key":“testkey18",“value":“testvalue",“time": 1548039103}   {“key":“testkey20",“value":“testvalue",“time": 1548039103}   {“key":“testkey22",“value":“testvalue",“time": 1548039103}   {“key":“testkey24",“value":“testvalue",“time": 1548039103}   {“key":“testkey26",“value":“testvalue",“time": 1548039103}   {“key":“testkey28",“value":“testvalue",“time": 1548039103}   {“key":“testkey30",“value":“testvalue",“time": 1548039103}   {“key":“testkey32",“value":“testvalue",“time": 1548039103}   {“key":“testkey34",“value":“testvalue",“time": 1548039103}   {“key":“testkey36",“value":“testvalue",“time": 1548039103}   {“key":“testkey38",“value":“testvalue",“time": 1548039103}   {“key":“testkey40",“value":“testvalue",“time": 1548039103}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

PHP使用Beanstalkd的案例