通過PHP CLI實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)庫實(shí)時(shí)監(jiān)控調(diào)度
下面是PHP代碼(dbtest.php)
!#/usr/local/php/bin/php
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db("test");
echo 'PID: '.posix_getpid().' '; //當(dāng)前進(jìn)程PID(linux下)
$old_id = 0;
while (1)
{
$sql = "SELECT `id` FROM `user` ORDER BY `id` DESC LIMIT 1";
$result = mysql_query($sql);
$item = mysql_fetch_assoc($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);
$sql = "INSERT INTO `user2`(`name`, `age`) VALUES {$values_str}";
mysql_query($sql);
}
$old_id = max($old_id, $new_id);
sleep(3); //3秒后進(jìn)入下次循環(huán)
}
業(yè)務(wù)流程應(yīng)該沒什么說的,就有幾處需要注意的地方:
第一行是PHP CLI模式需要添加的命令路徑,還有就是那個(gè)while(1)和sleep(3),其余都是普通的php代碼寫法。
通過shell命令php dbtest.php運(yùn)行即可,我在虛擬機(jī)上測(cè)試,正常情況下占用率CPU 0%,內(nèi)存1%。
實(shí)際應(yīng)用中可以放到后臺(tái)運(yùn)行:
php dbtest.php &
bg 1
PS:&命令很多地方說的很不清楚,甚至錯(cuò)誤。它只是將程序放入后臺(tái),而并沒有實(shí)際運(yùn)行!
順帶總結(jié)復(fù)習(xí)一下linux的前后臺(tái)運(yùn)行相關(guān)命令
命令 前后臺(tái) 狀態(tài) 使用方式
& 后臺(tái) 暫停 加在命令后
bg 后臺(tái) 運(yùn)行 后跟作業(yè)號(hào)
fg 前臺(tái) 運(yùn)行 后跟作業(yè)號(hào)
Ctrl+Z 后臺(tái) 暫停 (組合鍵)
jobs (查看所有作業(yè)號(hào)) 命令
- php命令行(cli)模式下報(bào)require 加載路徑錯(cuò)誤的解決方法
- ThinkPHP在Cli模式下使用模板引擎的方法
- PHP CLI模式下的多進(jìn)程應(yīng)用分析
- php cli模式學(xué)習(xí)(PHP命令行模式)
- php-cli簡(jiǎn)介(不會(huì)Shell語言一樣用Shell)
- php命令行(cli)下執(zhí)行PHP腳本文件的相對(duì)路徑的問題解決方法
- php cli 方式 在crotab中運(yùn)行解決
- 利用php-cli和任務(wù)計(jì)劃實(shí)現(xiàn)刷新token功能的方法
- 利用php-cli和任務(wù)計(jì)劃實(shí)現(xiàn)訂單同步功能的方法
- php cli模式下獲取參數(shù)的方法
相關(guān)文章
基于PHP實(shí)現(xiàn)解密或加密Cloudflar郵箱保護(hù)
這篇文章主要介紹了基于PHP實(shí)現(xiàn)解密Cloudflar郵箱保護(hù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06ThinkPHP Where 條件中常用表達(dá)式示例(詳解)
下面小編就為大家?guī)硪黄猅hinkPHP Where 條件中常用表達(dá)式示例(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03PHP開發(fā)的文字水印,縮略圖,圖片水印實(shí)現(xiàn)類與用法示例
這篇文章主要介紹了PHP開發(fā)的文字水印,縮略圖,圖片水印實(shí)現(xiàn)類與用法,結(jié)合完整實(shí)例形式分析了php文字水印、縮略圖操作類定義與簡(jiǎn)單使用方法,需要的朋友可以參考下2019-04-04