我們在使用框架處理一些事務(wù)的時(shí)候,一般會(huì)盡可能的把效率進(jìn)行提升。本篇所要講的QPM是一種針對程序開發(fā)的框架,特別是想要寫daemon框架的小伙伴,QPM可以說是不錯(cuò)的選擇。下面我們一起先對QPM框架進(jìn)行說明、作用的講解,然后帶來一個(gè)QPM制作程序的實(shí)例。
1、說明
QPM是一種功能強(qiáng)大的web開發(fā)語言,但經(jīng)常被遺忘??梢杂糜陂_發(fā)daemon程序,而用于開發(fā)健壯的命令行(CLI)程序。寫daemon程序不需要處理各種各樣的進(jìn)程管理。QPM就是一個(gè)用來簡化流程管理的類庫。
2、作用
QPM實(shí)現(xiàn)了fork對象的寫法,大大簡化了fork代碼的可讀性,同時(shí)實(shí)現(xiàn)了一系列Supervisor的用法,有助于開發(fā)者制作健康的多程序。在未來的版本中,計(jì)劃逐步開發(fā)信號處理和過程快捷的模塊。
3、實(shí)例
//定義 mission1:每隔3秒打印一次進(jìn)程信息, 無限循環(huán)。 $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 同時(shí)在子進(jìn)程中執(zhí)行。mission 1 只允許在一個(gè)子進(jìn)程中執(zhí)行,mission 2 則允許2個(gè)子進(jìn)程并行執(zhí)行。 $config = [ ['runnableCallback'=>$mission1], ['runnableCallback'=>$mission2, 'quantity'=>2] ]; // 使用multiGroupOneForOne 類型的supervisor 啟動(dòng)任務(wù),意味著同組配置,當(dāng)一個(gè)子進(jìn)程退出后,會(huì)立即重啟新的子進(jìn)程繼續(xù)執(zhí)行任務(wù)。 qpm\supervisor\Supervisor::multiGroupOneForOne($config)->start();
以上就是php中QPM框架的介紹,相信大家已經(jīng)初步對這種開發(fā)程序的框架有所了解