首頁 > php教程 > PHP开发 > 主體

透過PHP CLI實現簡單的資料庫即時監控調度

黄舟
發布: 2016-12-14 13:17:06
原創
1330 人瀏覽過

要實現的功能:監控user表,若有新紀錄增加,將其新增至user2表。 (實際應用上可以引深一些,例如對資料進行相關處理等)

下面是PHP程式碼(dbtest.php)

程式碼如下:
!#/usr/local/php/bin/php 
mysql_connect('localhost', 'username', 'password'); 
mysql_select_db("test"); 
echo 'PID: '.posix_getpid().' '; //目前處理PID(linux下) = 0; 
while (1) 

$sql = "SELECT `id` FROM `user` ORDER BY `id` DESC LIMIT 1"; 
$result = mysql_query($sql); result); 
$new_id = $item['id']; 
$values_arr = array(); 
for ($i=$new_id; $i>$old_id && $old_id!=0; $i--) 

$sql = "SELECT `name`,`age` FROM `user` WHERE `id`='{$i}' LIMIT 1"; 
$result = mysql_query($sql); 
$item = mysql_fetch_assoc($ result); 
$name = $item['name']; 
$age = $item['age']; 
$values_arr[] = "('{$name}', '{$age}')" ; 

if (!emptyempty($values_arr)) 

$values_str = implode(',', $values_arr); 
2$sql = "INSERT INTO `user2``name,` $values_str}"; 
mysql_query($sql); 

$old_id = max($old_id, $new_id); 
sleep(3); //3秒後再進入循環}
}
sleep(3); //3秒後再進入循環}說的,就有幾處要注意的地方: 
第一行是PHP CLI模式需要加入的指令路徑,還有就是那個while(1)和sleep(3),其餘都是普通的php程式碼寫法。 

透過shell指令php dbtest.php運行即可,我在虛擬機器上測試,正常情況下佔用率CPU 0%,記憶體1%。 

實際應用中可以放到後台運作: 
php dbtest.php & 
bg 1 
PS:&指令很多地方說的很不清楚,甚至錯誤。它只是將程式放入後台,而並沒有實際運行!
順帶總結複習一下linux的前後台運行相關命令

命令前後台狀態使用方式

& 後台暫停加在命令後

bg 後台運行後跟作業號

fg 運行後跟工作貨號後台暫停(組合鍵)

jobs (查看所有作業號) 指令

更多相關文章請關注php中文網(www.php.cn)!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板