博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP实现多进程并行操作(可做守护进程)
阅读量:7072 次
发布时间:2019-06-28

本文共 815 字,大约阅读时间需要 2 分钟。

/**

02     * 入口函数
03     * 将此文件保存为 ProcessOpera.php
04     * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.php &
05     * 查看进程 ps aux|grep php
06     */
07    
08    
09    ProcessOpera("runCode", array(), 8);
10    
11    /**
12     * run Code
13     */
14    function runCode($opt = array()) {
15       //需要在守护进程中运行的代码
16    }
17    
18    /**
19     * $func为子进程执行具体事物的函数名称
20     * $opt为$func的参数 数组形式
21     * $pNum 为fork的子进程数量
22     */
23    function ProcessOpera($func, $opts = array(), $pNum = 1) {
24        while(true) {
25            $pid = pcntl_fork();
26            if($pid == -1) {
27                exit("pid fork error");
28            }  
29            if($pid) {
30                static $execute = 0;
31                $execute++;
32                if($execute >= $pNum) {
33                    pcntl_wait($status);
34                    $execute--;
35                }  
36            } else {
37                while(true) {
38                    //somecode
39                    $func($opts);
40                    sleep(1);
41                }  
42                exit(0);
43            }  
44        }  
45    }

转载于:https://www.cnblogs.com/xingmeng/archive/2013/02/05/2892667.html

你可能感兴趣的文章
Ubuntu ssh连接root验证错误
查看>>
汉字转化为拼音
查看>>
基于TP的SenCMS目录结构
查看>>
jquery 验证提交
查看>>
Yaf框架的扩展-mvc-路由配置-模版视图smarty加载
查看>>
单行文本溢出and多行文本溢出...以省略号展现
查看>>
MYSQL语句
查看>>
Android WebView 详解(持续更新)
查看>>
ElasticSearch动态添加节点及相关配置项
查看>>
Android studio 使用心得(十)---android studio 多渠道打包(三)
查看>>
数据库选型的一些看法
查看>>
PHP接口&抽象类验证笔记
查看>>
Spark Streaming源码解读之No Receivers
查看>>
使用背景图的div宽高自适应
查看>>
sql注入工具
查看>>
MongoDB 开启用户认证登录
查看>>
ADO.NET操作数据库(一)
查看>>
指针与引用的本质区别
查看>>
Auto Layout 使用心得(五)—— 根据文字、图片自动计算 UITableViewCell
查看>>
M3U8在线视频文件下载合成MP4视频(自己想看电影)
查看>>