日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
php_swoole對(duì)進(jìn)程的基本操作

本篇內(nèi)容主要講解“php_swoole對(duì)進(jìn)程的基本操作”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“php_swoole對(duì)進(jìn)程的基本操作”吧!

創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、小程序制作、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十載以來(lái),已經(jīng)為數(shù)千家宴會(huì)酒店設(shè)計(jì)各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的數(shù)千家客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。

在以往的開發(fā)項(xiàng)目中,要操作進(jìn)程就會(huì)使用PHP自帶的pcntl拓展。但是pcntl存在著許多的不足:

  • pcntl沒(méi)有提供進(jìn)程間通信的功能

  • pcntl不支持重定向標(biāo)準(zhǔn)輸入和輸出

  • pcntl只提供了fork這樣原始的接口,容易使用錯(cuò)誤

這邊我們使用swoole進(jìn)程管理模塊,用來(lái)替代PHPpcntl

場(chǎng)景:日常任務(wù)中,有時(shí)需要通過(guò)php腳本執(zhí)行一些日志分析,隊(duì)列處理等任務(wù),當(dāng)數(shù)據(jù)量比較大時(shí),可以使用多進(jìn)程來(lái)處理。

準(zhǔn)備:安裝PHP_swoole拓展;

write($data)
  向管道內(nèi)寫入數(shù)據(jù)。$data的長(zhǎng)度在Linux系統(tǒng)下最大不超過(guò)8KMacOS/FreeBSD下最大不超過(guò)2K
start():
   執(zhí)行fork調(diào)用,啟動(dòng)子進(jìn)程。

/** 創(chuàng)建子進(jìn)程,將數(shù)據(jù)寫入管道,然后啟動(dòng)子進(jìn)程 */
$process = new \swoole_process([$this, 'sonProcessWork']);
$process->write(json_encode($data_pop));
$pid = $process->start();

swoole_event_add():  將一個(gè)socket加入到底層的reactor事件監(jiān)聽中;在子進(jìn)程中處理一些耗時(shí)的計(jì)算或者操作;

/** 獲取管道的業(yè)務(wù)數(shù)據(jù),進(jìn)行相關(guān)的操作 */
public function sonProcessWork(\swoole_process $worker){
  $GLOBALS['worker'] = $worker;
  swoole_event_add($worker->pipe, function($pipe) {
   /******start*你的業(yè)務(wù)邏輯 *******/
    .....
   /******end*你的業(yè)務(wù)邏輯 *******/
  $worker->exit(0);
  })
}

wait(false)

回收結(jié)束運(yùn)行的子進(jìn)程

/** 根據(jù)信號(hào)處理紫禁城 */
private function sig_handler($signo) { 
 Process::signal(SIGCHLD, function($sig) {
  //必須為false,非阻塞模式
  while($ret =  Process::wait(false)) {
      echo "PID={$ret['pid']}\n";
  }
});
}

到此,相信大家對(duì)“php_swoole對(duì)進(jìn)程的基本操作”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


當(dāng)前題目:php_swoole對(duì)進(jìn)程的基本操作
URL網(wǎng)址:http://www.dlmjj.cn/article/jhohcp.html