PHP>> PCF>> 返回
项目作者: micweaver

项目描述 :
php并发框架,让开发的脚本自动并发运行起来
高级语言: PHP
项目地址: git://github.com/micweaver/PCF.git
创建时间: 2014-01-11T08:53:11Z
项目社区:https://github.com/micweaver/PCF

开源协议:GNU General Public License v2.0

下载


PCF

php并发框架,让开发的脚本自动并发运行起来

  1. PCF主要有两个目的:
  2. 1.使并发程序写起来更容易。写的单个脚本可以自动并发跑起来
  3. 2.使并发控制更简单。并发的进程数可以随时增多和减少,特意暂停或意外中止的程序会记录暂停点,
  4. 下次执行时从暂停点继续执行。

PCF的框架图如下,具体解释见 http://blog.csdn.net/micweaver/article/details/18143737
github

假设我们有如下的数据处理需求: 一共有200个表的数据,每个表有一百万的数据,对于每个数据要进行某种处理。

为了高效处理,需要进行并发处理,用户代码示例如下,假如在文件usercode.php中:

  1. <?php
  2. require_once 'currFrame.php';//包含框架代码
  3. define('TABLENUM',10);
  4. //用户类继承框架类
  5. class Example extends CurrFrame {
  6. /**
  7. * 产生消息
  8. */
  9. public function produce(){
  10. for ($i = 0;$i <TABLENUM ;$i++){
  11. $this->addMsg($i);//添加消息,此处为表序号
  12. }
  13. $this->endMsg(); //结束消息,如果没有更多消息,就要结束,否则总会尝试读取更多消息
  14. }
  15. /**
  16. * 具体处理代码
  17. * @param $msg 当前处理的消息
  18. * @param $pos 当前处理到的位置
  19. */
  20. public function process($msg,$pos = NULL) {
  21. $no = $msg;
  22. $j = $pos ==NULL ? 0:$pos;
  23. for(;$j<10;$j++){
  24. //此处放具体处理逻辑
  25. $this->recordProcess($j); //记录处理进度
  26. }
  27. }
  28. /**
  29. *所有进程运行完成后执行的代码
  30. */
  31. public function output(){
  32. }
  33. }
  34. $obj = new Example();
  35. $obj->run();

启动并发只要执行 php usercode.php batch 3 ,表示启动3个并发,可以随时更改并发的参数,也可以设为0,表示停止所有的处理