PHP進程管理框架:QPM

jopen 9年前發布 | 17K 次閱讀 QPM PHP開發

QPM全名是 Quick Process Managent Module for PHP. PHP 是強大的web開發語言,以至于大家常常忘記PHP 可以用來開發健壯的命令行(CLI)程序以至于daemon程序。 而編寫daemon程序免不了與各種進程管理打交道。QPM正式為簡化進程管理而開發的類庫。

以下是用QPM編寫多進程程序的小例子。

//定義 mission1:每隔3秒打印一次進程信息, 無限循環。
$mission1 = function() {
    while(true) {
            echo "---mission 1, pid:".posix_getpid()."\n";
            sleep(3);
    }
};

//定義 mission2:打印信息后 3秒后退出。
$mission2 = function() {
            echo "+++mission 2,pid:".posix_getpid()."\n";
            sleep(3);
};

//配置: mission 1 和mission 2 同時在子進程中執行。mission 1 只允許在一個子進程中執行,mission 2 則允許2個子進程并行執行。
$config = [
    ['runnableCallback'=>$mission1],
    ['runnableCallback'=>$mission2, 'quantity'=>2]
];
// 使用multiGroupOneForOne 類型的supervisor 啟動任務,意味著同組配置,當一個子進程退出后,會立即重啟新的子進程繼續執行任務。
qpm\supervisor\Supervisor::multiGroupOneForOne($config)->start();

0.1是QPM 對外發布的第一個stable 版本,在這個版本里,實現了fork的面向對象的寫法,極大的簡化了fork代碼的可讀性;同時實現了一系列Supervisor的用法,可以幫助開發者編寫健壯的多進程程序。 在未來的版本里,計劃逐步開發出信號處理和跨進程通迅的模塊。

項目主頁:http://www.baiduhome.net/lib/view/home/1425220879720

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!