国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php消息隊列發送數據和獲取數據的代碼示例

2020-03-22 20:02:28
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于php消息隊列發送數據和獲取數據的代碼示例,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

向消息隊列發送數據和獲取數據的測試

 ?php$key=ftok(__FILE__, a //獲取消息隊列$queue=msg_get_queue($key,0666);//發送消息//msg_send($queue, 1, Hello, 1 //接收消息,如果接收不到會阻塞msg_receive($queue, 1, $message_type, 1024, $message1);//移除消息//msg_remove_queue($queue);//var_dump($message1);

 ?php * 這段代碼模擬了一個日常的任務。 * 第一個父進程產生了一個子進程。子進程又作為父進程,產生10個子進程。 * 可以簡化為A - B - c,d,e... 等進程。 * 作為A來說,只需要生產任務,然后交給B 來處理。B 則會將任務分配給10個子進程來進行處理。//設定腳本永不超時set_time_limit(0);$ftok = ftok(__FILE__, a $msg_queue = msg_get_queue($ftok);$pidarr = []; //產生子進程$pid = pcntl_fork();if ($pid) { //父進程模擬生成一個特大的數組。 $arr = range(1,100000); //將任務放進隊里,讓多個子進程并行處理 foreach ($arr as $val) { $status = msg_send($msg_queue,1, $val); usleep(1000); $pidarr[] = $pid; msg_remove_queue($msg_queue);} else { //子進程收到任務后,fork10個子進程來處理任務。 for ($i =0; $i $i++) { $childpid = pcntl_fork(); if ($childpid) { $pidarr[] = $childpid; //收集子進程processid } else { while (true) { msg_receive($msg_queue, 0, $msg_type, 1024, $message); if (!$message) exit(0); echo $message.PHP_EOL; usleep(1000);//防止主進程先于子進程退出,形成僵尸進程while (count($pidarr) 0) { foreach ($pidarr as $key = $pid) { $status = pcntl_waitpid($pid, $status); if ($status == -1 || $status 0) { unset($pidarr[$key]); sleep(1);}

以上就是php消息隊列發送數據和獲取數據的代碼示例的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资源县| 出国| 红河县| 敖汉旗| 丰宁| 仁寿县| 通山县| 壤塘县| 台北市| 乌苏市| 丹棱县| 荥阳市| 茂名市| 阿巴嘎旗| 长阳| 阿拉善盟| 浙江省| 泰兴市| 同心县| 永康市| 石阡县| 延庆县| 本溪市| 乌审旗| 佛学| 叙永县| 凤翔县| 桂平市| 安庆市| 阳高县| 囊谦县| 宁远县| 赞皇县| 台北市| 巴林右旗| 聊城市| 韩城市| 金川县| 云龙县| 紫金县| 准格尔旗|