通过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 相关文章推荐
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
php 高性能书写
Dec 11 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php判断用户是否手机访问代码
Jun 08 PHP
joomla数据库操作示例代码
Jan 06 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
php+ajax 文件上传代码实例
Mar 18 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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
JObj预览一个JS的框架
2008/03/13 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
详解React中setState回调函数
2018/06/14 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python实现感知器算法(批处理)
2019/01/18 Python
python检测服务器端口代码实例
2019/08/31 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
品管员岗位职责
2013/11/10 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
高一政治教学反思
2014/01/28 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
工程造价专业求职信
2014/07/17 职场文书
收款委托书
2014/10/14 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
中秋节随笔
2015/08/15 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技