multi-process-pcntl 基於PCNTL的PHP併發處理 封裝類

我的聲明

做者:於立(wx/yulichenr)
敬告:聯繫我,請註明來源和來意
本人開發有不少年了,可是不多整理分享,現在趁着悠閒就爲你們服務了,但願更多地體驗到編程帶來的快樂。
職場多年下來,技術也算是逐漸地有些積累,可是更重要的是對自身有了更加合理的人生定位。或許,人生的意義,就在於此處的感悟吧。
有對 閱讀和寫做; 自由工做者; 對大數據信息有領悟者 ,歡迎叨擾。php

multi-process-pcntl

基於PCNTL的PHP併發處理 封裝類。git

對PHP語言底層擴展的的深度解讀和生產應用。 github

github code 地址編程


使用說明

整理相關的一些資料,封裝了下基於 PCNTL 的多進程數組

生產環境已經校驗了,能夠放心大膽地使用bash

引入說明

$ composer require yuli/multi-process-pcntl

使用方法

// 任務數組參數,以此做爲切分進程的量化依據,默認被調用方法的第一個參數
$task = range(1, 12);

// 默認 5 個進程,能夠進行配置
// 設置的進程數是最大能夠取到的進程數
// 會根據任務量 和 進程數進行靈活設定,會根據 count($task)/5 對每一個進程內的任務數進行由多到少的分配,後面不足的將再也不啓動新的進程了
$sync = new MultiProcessPcntl($task);
// $sync = new MultiProcessPcntl($task, 6);

// 支持調用類方法
// 支持傳參
$sync->call('test', 'append arg');

運行效果圖:併發

multi-demo.png

一些相關知識點

PHP自己不支持多進程,但基於Linux的PHP擴展PCNTL卻能夠提供多進程編程。app

PCNTL 函數 - PHP 官網手冊中對PCNTL的說明,更細化的需求能夠研究深化。composer

相關文章
相關標籤/搜索