QPM-PHP進程管理框架

QPM全名是 Quick Process Management Framework for PHP. PHP 是強大的web開發語言,以致於你們經常忘記PHP 能夠用來開發健壯的命令行(CLI)程序以致於daemon程序。 而編寫daemon程序免不了與各類進程管理打交道。QPM正是爲簡化進程管理而開發的類庫。git

QPM的項目地址是: https://github.com/Comos/qpm github

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

//定義 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();

到目前爲止,QPM實現了fork的面向對象的寫法,極大的簡化了fork代碼的可讀性;同時實現了一系列Supervisor的用法,能夠幫助開發者編寫健壯的多進程程序。 在將來的版本里,計劃逐步開發出信號處理和跨進程通迅的模塊。框架

關於 QPM的使用,能夠參考:ui

安裝和使用PHP進程管理框架 QPM
使用qpm建立daemon程序
使用QPM編寫PHP 多進程程序
 PHP使用QPM實現多進程並行任務處理程序
相關文章
相關標籤/搜索