編寫daemon程式時,我們可以使用乙個pid檔案標記程序是否已經被建立,防止程序被重複啟動,pid檔案同時記錄了程序號,以便於向程序傳送訊號。qpm中的pidfile正是用來管理pid檔案的模組。
qpm 是乙個php 程序管理框架,可用於簡化daemon開發,專案位址在:
例子:
#pid_main.php
<?php
require_once 'qpm/pidfile/manager.php';
use qpm\pidfile\manager;
$man = new manager(__file__.'.pid');
$man->start();
while(true) sleep(10);
?>
首次執行 php pid_main.php,我們能看到生成了 pid_main.php.pid檔案,程序持續執行。 再次執行 php pid_main.php,腳本報錯,提示程序已經存在。 fatal error: uncaught exception 'qpm\pidfile\exception' with message 'process exists, no need to start a new one' in .../qpm/pidfile/manager.php:41
此外,qpm\pid\manager 還有getprocess 方法。
#pid_check.php
<?php
$man = new manager(__dir__.'/pid_main.php.pid');
echo $man->getprocess()->getpid();
?>
如果pid檔案不存在或為空,則會丟擲異常。 注意:getprocess方法獲取的物件,並不100%確保是原程序。後續版本會改進這裡的檢測。 使用SpringMVC Restful 開發思考
一 rest思想 此部分摘抄網路 rest representational state transfer 是一種輕量級的web service架構風格,其實現和操作明顯比soap和xml rpc更為簡潔,可以完全通過http協議實現,還可以利用快取cache來提高響應速度,效能 效率和易用性上都優...
使用 phpStorm 開發
苦惱蛋疼的曾哥工作室,讓人痛不欲生,緩慢的同步速度,另人惱火的外掛程式配置,讓人瘋狂的卡。簡直是讓人用了幾天之後就不行了。廢話不多說,一款很好的php ide。2.註冊 user name embrace license key 直接複製 license begin 43136 12042010 0...
使用vim 開發C
原版 先來兩張指令圖 1 使用vim的會話 session 及viminfo的儲存和恢復 上次開發環境 這裡所說的會話和viminfo,包括了你在本次使用vim過程中的編輯環境,vim可以把這個編輯環境儲存下來,然後你在下次啟動vim後,可以再恢復回這個環境。我們在開發軟體專案時,其週期不是一兩天。...