继续CLI模式实验,这次通过使用前面的“带延迟的无限循环”方法实现了简单的数据库实时监控和调度功能。
要实现的功能:监控user表,如果有新记录添加,就添加到user2表中。(在实际应用中可以深化,比如数据处理等。)
下面是PHP代码(dbtest.php)。复制代码如下:#/usr/local/php/bin/php?php mysql_connect('localhost ','用户名','密码');MySQL _ select _ db(' test ');回显' PID:'。posix_getpid()。' ';//当前进程PID(在PID(linux)下$ old _ id=0;while(1){ $ SQL=' SELECT ' id FROM ' user ' ORDER BY ' id ' desc限制1;$ result=MySQL _ query($ SQL);$ item=MySQL _ fetch _ assoc($ result);$ new _ id=$ item[' id '];$ values _ arr=array();for($ I=$ new _ id;$ i $旧标识$旧标识!=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 } ')';}如果(!empty empty($ values _ arr)){ $ values _ str=内爆(',',$ values _ arr);$ SQL=' INSERT INTO ` user 2 `( ` name `, ` age `)VALUES { $ VALUES _ str } ';MySQL _ query($ SQL);} $old_id=max($old_id,$ new _ id);睡眠(3);//3秒后进入下一个周期}业务流程应该没什么可说的了,所以有几点需要注意:第一行是php CLI模式下需要添加的命令路径,还有那个while(1)和sleep(3),其余都是常见的php代码编写。只需通过shell命令运行PHP dbtest.php。我在虚拟机上进行了测试。正常情况下,CPU占用率为0%,内存为1%。实际操作中,可以在后台运行:PHP dbtest.php BG1PS:很多地方命令不清晰甚至错误。它只是把程序放在后台,但实际上并不运行!顺便总结回顾一下linux前台后台操作的相关命令。
命令 前后台 状态 使用方式
命令后会添加背景暂停。
作业编号后的血糖后台运行
Fg前台运行,后跟作业编号
Ctrl后台暂停(组合键)
作业(查看所有作业编号)命令
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。