源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-01-18 12:58 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:通过PHP CLI实现简单的数据库实时监控调度
要实现的功能:监控user表,若有新纪录增加,将其向user2表中添加。(实际应用上可以引深一些,例如对数据进行相关处理等) 下面是PHP代码(dbtest.php)
[u]复制代码[/u] 代码如下:
!#/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的前后台运行相关命令 [b]命令      前后台    状态        使用方式[/b] &           后台        暂停        加在命令后 bg         后台        运行        后跟作业号 fg          前台        运行        后跟作业号 Ctrl+Z   后台        暂停         (组合键) jobs     (查看所有作业号)    命令
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部