swoole 訊息佇列

2022-03-03 09:58:01 字數 1211 閱讀 9646

<?php/**

* 場景:

* 監控訂單表狀態 佇列通訊

* 乙個程序向佇列發布訊息 另外兩個程序爭搶 */

//設定主程序名

echo '主程序id:' . posix_getpid() . php_eol

;cli_set_process_title('php_main');

//1、此子程序用於監聽資料的改變

$process1 = new \swoole\process(function (\swoole\process $process

)

sleep(3);

}}, false, sock_stream, true

);//

啟動訊息佇列作為程序間通訊

$process1->usequeue(2);

echo '子程序1 id:' . $process1->start() . php_eol;//

2、此子程序用於傳送郵件

$process2 = new \swoole\process(function (\swoole\process $process

)

sleep(3);

}}, false, sock_stream, true

);$process2->usequeue(2);

echo '子程序2 id:' . $process2->start() . php_eol;//

3、此子程序用於傳送郵件

$process3 = new \swoole\process(function (\swoole\process $process

)

sleep(3);

}}, false, sock_stream, true

);$process3->usequeue(2);

echo '子程序3 id:' . $process3->start() . php_eol

;while (true

) //

\swoole\process::wait();

//使用process作為監控父程序,建立管理子程序時,父類必須註冊訊號sigchld對退出的程序執行wait,否則子程序退出時會變成殭屍程序

swoole\process::signal(sigchld, function ($signo

) });

2019 5 18 swoole訊息佇列

1跨程序 不需要親緣關係 可不是父子程序 2跨語言 php和c通訊 3不是共享記憶體,而是訊息傳遞。資料獲取後消失。4msg send msg receive 預設阻塞也可不阻塞 5特點 快。侷限性 單機 6swoole的task程序允許其他程式投遞,c語言或傳統fpm投遞到task。swoole已...

Swoole高階 04 程序(訊息佇列通訊)

普通形式 process new swoole process callback function false false oop形式 swoole process construct callable function redirect stdin stdout false create pipe...

swoole訊息推送

socket.php 注釋的部分是學習的筆記 建立websocket伺服器物件,監聽0.0.0.0 9502埠 ws new swoole websocket server 0.0.0.0 9501 監聽websocket連線開啟事件 客戶端想伺服器傳送資訊是呼叫函式 ws websocket 伺服...