91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php_swoole對進程的基本操作

發布時間:2021-09-03 19:35:39 來源:億速云 閱讀:109 作者:chen 欄目:大數據

本篇內容主要講解“php_swoole對進程的基本操作”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php_swoole對進程的基本操作”吧!

在以往的開發項目中,要操作進程就會使用PHP自帶的pcntl拓展。但是pcntl存在著許多的不足:

  • pcntl沒有提供進程間通信的功能

  • pcntl不支持重定向標準輸入和輸出

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

這邊我們使用swoole進程管理模塊,用來替代PHPpcntl

場景:日常任務中,有時需要通過php腳本執行一些日志分析,隊列處理等任務,當數據量比較大時,可以使用多進程來處理。

準備:安裝PHP_swoole拓展;

write($data)
  向管道內寫入數據。$data的長度在Linux系統下最大不超過8KMacOS/FreeBSD下最大不超過2K
start():
   執行fork調用,啟動子進程。

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

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

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

wait(false)

  回收結束運行的子進程

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

到此,相信大家對“php_swoole對進程的基本操作”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

莱西市| 章丘市| 乐东| 射阳县| 镇赉县| 汕头市| 陕西省| 安阳县| 巴彦淖尔市| 监利县| 海兴县| 临武县| 科技| 宿州市| 泸西县| 淮滨县| 五家渠市| 绥芬河市| 简阳市| 越西县| 横山县| 家居| 鞍山市| 吴江市| 即墨市| 休宁县| 宝山区| 万全县| 乌鲁木齐县| 肥乡县| 吉木乃县| 平利县| 兴国县| 壶关县| 贵德县| 泸溪县| 忻州市| 双柏县| 阳城县| 湘潭市| 兰州市|