php多进程模型 开箱即用
仓库地址
https://github.com/xieyonn/MultiProcess
安装
使用composer
- 将仓库加到你的项目
composer.json的repositories下
{
"repositories": [
{
"type": "git",
"url": "https://github.com/xieyonn/MultiProcess.git"
}
]
}
- 安装
composer require "xieyonn/MultiProcess"
示例
规定子进程数量,主进程同时创建多个子进程执行同一个任务
可以传入回调函数,全部任务执行完后执行
use MultiProcess\ProcessClone;
$mum = 2; // 子进程数量
$call = function () { // 任务以闭包的形式传入
sleep(5);
echo "hello";
};
$p = new ProcessClone($num, $call);
$callback = function() {
echo 'done';
};
// 指定callback,任务执行完后执行
$p->run($callback);
...
// 主进程继续执行...
规定子进程数量上限,接受数组形式的任务参数,每个参数会传入给任务。任务执行次数取决于参数数组大小。
可以传入回调函数,全部任务执行完后执行
use MultiProcess\ProcessClone;
$num = 3;
$call = function ($begin, $end) {
sleep(5);
echo "{$begin} ~ {$end}\n";
};
// 任务参数(索引数组) key => name 分别代码传给任务闭包的参数名、参数值
$params = [
[
'begin' => '2018-01-01',
'end' => '2018-01-02',
],
[
'begin' => '2018-01-02',
'end' => '2018-01-03',
],
[
'begin' => '2018-01-03',
'end' => '2018-01-04',
],
[
'begin' => '2018-01-04',
'end' => '2018-01-05',
],
[
'begin' => '2018-01-05',
'end' => '2018-01-06',
],
];
$p = new ProcessCloneParams($num, $call, $params);
$p->run(function() {
echo 'done';
});
...
// 主进程继续执行...
php多进程模型 开箱即用的更多相关文章
- 简化的nginx多进程模型demo
//version 1:以下代码仅演示nginx多进程模型[test@vm c]$ cat mynginx.c#include <stdio.h> #include <string. ...
- Chromium与CEF的多进程模型及相关參数
CEF基于Chromium,也是多进程模型.关于进程模型.參考这里:https://www.chromium.org/developers/design-documents/process-model ...
- 系列3|走进Node.js之多进程模型
文:正龙(沪江网校Web前端工程师) 本文原创,转载请注明作者及出处 之前的文章"走进Node.js之HTTP实现分析"中,大家已经了解 Node.js 是如何处理 HTTP 请求 ...
- PHP 技能精进之 PHP-FPM 多进程模型
PHP-FPM 提供了更好的 PHP 进程管理方式,可以有效控制内存和进程.可以平滑重载PHP配置.那么当我们谈论 PHP-FPM 多进程模型的时候,作为 PHPer 的你了解多少呢? 首先,让我们一 ...
- Node.js - 阿里Egg的多进程模型和进程间通讯
前言 最近用Egg作为底层框架开发项目,好奇其多进程模型的管理实现,于是学习了解了一些东西,顺便记录下来.文章如有错误, 请轻喷 为什么需要多进程 伴随科技的发展, 现在的服务器基本上都是多核cpu的 ...
- nginx和apache最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程
nginx和apache的一些优缺点比较,摘自网络,加自己的一些整理. nginx相对于apache的优点: 1.轻量级,同样是web 服务,比apache 占用更少的内存及资源 2.抗并发,ngin ...
- 第13章 TCP编程(3)_基于自定义协议的多进程模型
5. 自定义协议编程 (1)自定义协议:MSG //自定义的协议(TLV:Type length Value) typedef struct{ //协议头部 ];//TLV中的T unsigned i ...
- nginx与apache 对比 apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程
nginx与apache详细性能对比 http://m.blog.csdn.net/lengzijian/article/details/7699444 http://www.cnblogs.com/ ...
- C10K问题和多进程模型
收录编辑来自马哥教育相关课程 内核空间的相关程序在调度用户空间里的进程的时候,也占用了cpu资源...... nginx可以作为两种类型的反向代理 http 和smtp(mail) C10K问题, 当 ...
随机推荐
- 使用springmvc时静态的文件获取不到,比如说样式丢失的问题。
当使用springmvc时前台所有的样式全部都消失不见了,查了很多资料,简单的说就是我在配置web.xml中的过滤器时将<url-pattern></url-pattern>中 ...
- JDK 源码分析(4)—— HashMap/LinkedHashMap/Hashtable
JDK 源码分析(4)-- HashMap/LinkedHashMap/Hashtable HashMap HashMap采用的是哈希算法+链表冲突解决,table的大小永远为2次幂,因为在初始化的时 ...
- Yii2表单提交(带文件上传)
今天写一个php的表单提交接口,除了基本的字符串数据,还带文件上传,不用说前端form标签内应该有这些属性 <form enctype="multipart/form-data&quo ...
- jieba库词频统计练习
在sypder上运行jieba库的代码: import matplotlib.pyplot as pltfracs = [2,2,1,1,1]labels = 'houqin', 'jiemian', ...
- [CVPR2015] Is object localization for free? – Weakly-supervised learning with convolutional neural networks论文笔记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...
- STM32f030f4p6 内部flash 打包读写
最近做到的项目在运行需要把一组uint8_t(unsigned char)的数据进行掉电储存,想到单片机STM32f030f4p6内部flash可以直接由程序操作,写了以下代码用于uint8_t数据打 ...
- String的replaceAll()用法详解
使用replaceAll实现字符串替换,即把字符串某些字符全部替换成别的 // 将str中的所有数字替换为"数字"二字 String str = "abc123bcd45 ...
- SSH免密码登录Linux服务器
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=587 操作环境: 客户机操作系统:Ubuntu Linux 服务器操作系统:CentOS Linux 免密登陆的原理: ...
- ReactNative(三)——WebStorm的基本配置
设置.js文件默认以jsx的语法打开 在没有进行设置的情况下,每次打开WebStorm的时候打开包含jsx语法的.js文件都会有以下提示: 当然我们点击转换后就可以了,但是每次都会提示,所以还是来一个 ...
- JavaScript设计模式 Item 7 --策略模式Strategy
1.策略模式的定义 何为策略?比如我们要去某个地方旅游,可以根据具体的实际情况来选择出行的线路. 如果没有时间但是不在乎钱,可以选择坐飞机. 如果没有钱,可以选择坐大巴或者火车. 如果再穷一点,可以选 ...