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

要实现的功能:监控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下)

$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中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值