PHP進程管理框架:QPM
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的用法,可以幫助開發者編寫健壯的多進程程序。 在未來的版本里,計劃逐步開發出信號處理和跨進程通迅的模塊。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!