通过PHPCLI实现简单的数据库实时监控调度
2023-06-13 09:14:10 时间
要实现的功能:监控user表,若有新纪录增加,将其向user2表中添加。(实际应用上可以引深一些,例如对数据进行相关处理等)
下面是PHP代码(dbtest.php)
复制代码代码如下:
下面是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`ORDERBY`id`DESCLIMIT1";
$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}"LIMIT1";
$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="INSERTINTO`user2`(`name`,`age`)VALUES{$values_str}";
mysql_query($sql);
}
$old_id=max($old_id,$new_id);
sleep(3);//3秒后进入下次循环
}
业务流程应该没什么说的,就有几处需要注意的地方:
第一行是PHPCLI模式需要添加的命令路径,还有就是那个while(1)和sleep(3),其余都是普通的php代码写法。
通过shell命令phpdbtest.php运行即可,我在虚拟机上测试,正常情况下占用率CPU0%,内存1%。
实际应用中可以放到后台运行:
phpdbtest.php&
bg1
PS:&命令很多地方说的很不清楚,甚至错误。它只是将程序放入后台,而并没有实际运行!
顺带总结复习一下linux的前后台运行相关命令
命令 前后台 状态 使用方式
bg 后台 运行 后跟作业号
fg 前台 运行 后跟作业号
Ctrl+Z 后台 暂停 (组合键)
jobs (查看所有作业号) 命令
相关文章
- Jmeter监控服务器性能「建议收藏」
- mysql官方监控工具_mysql数据库监控
- 使用docker快速搭建网站监控程序:uptime-kuma
- 浅析前端监控技术
- MySQL进程监控:深入了解数据库性能(mysql进程监控)
- MySQL 数据库监控:最佳实践(mysql数据监控)
- 【Oracle 监控:监控数据库连接情况】(oracle监控连接数)
- 数据库监控Oracle数据库实时变化:一种追求卓越的实践(监控oracle)
- Effective Management: Monitoring Your Oracle Database(oracle数据库监控)
- 监控MSSQL数据库,保证安全运行(监控mssql)
- 提升数据库安全性:建立MSSQL读取监控规则(监控mssql读取规则)
- MySQL监控查询:让你轻松掌控数据库(mysql监控查询语句)
- Oracle数据库监控:命令行方式(cmdoracle监听)
- MySQL监控深入了解数据库运行情况(c mysql监听)
- 监测Redis数据变化实时监控你的数据库(监听redis数据的变化)
- 数据库Go语言实现监控Oracle数据库(go监听oracle)
- MySQL数据库维护中监控所用到的常用命令