通过PHP CLI实现简单的数据库实时监控调度


Posted in PHP onJuly 01, 2009

要实现的功能:监控user表,若有新纪录增加,将其向user2表中添加。(实际应用上可以引深一些,例如对数据进行相关处理等)

下面是PHP代码(dbtest.php)

!#/usr/local/php/bin/php 
<?php 
mysql_connect('localhost', 'username', 'password'); 
mysql_select_db("test"); 
echo 'PID: '.posix_getpid().' '; //当前进程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秒后进入下次循环 
}

业务流程应该没什么说的,就有几处需要注意的地方:
第一行是PHP CLI模式需要添加的命令路径,还有就是那个while(1)和sleep(3),其余都是普通的php代码写法。
通过shell命令php dbtest.php运行即可,我在虚拟机上测试,正常情况下占用率CPU 0%,内存1%。
实际应用中可以放到后台运行:
php dbtest.php &
bg 1
PS:&命令很多地方说的很不清楚,甚至错误。它只是将程序放入后台,而并没有实际运行!
顺带总结复习一下linux的前后台运行相关命令

命令      前后台    状态        使用方式

&           后台        暂停        加在命令后

bg         后台        运行        后跟作业号

fg          前台        运行        后跟作业号

Ctrl+Z   后台        暂停         (组合键)

jobs     (查看所有作业号)    命令

PHP 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
PHP教程 预定义变量
Oct 23 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
php支付宝接口用法分析
Jan 04 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 29 #PHP
PHP 彩色文字实现代码
Jun 29 #PHP
php 过滤危险html代码
Jun 29 #PHP
php 图片上添加透明度渐变的效果
Jun 29 #PHP
需要发散思维学习PHP
Jun 29 #PHP
PHP HTML代码串 截取实现代码
Jun 29 #PHP
PHP 网页过期时间的控制代码
Jun 29 #PHP
You might like
PHPShop存在多个安全漏洞
2006/10/09 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
浅谈JavaScript中指针和地址
2015/07/26 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python深入学习之对象的属性
2014/08/31 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python实现图书管理系统
2018/03/12 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
小学生家长寄语
2014/04/02 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
家庭贫困证明
2014/09/23 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python