>  기사  >  php教程  >  PHP CLI를 통한 간단한 실시간 데이터베이스 모니터링 및 스케줄링

PHP CLI를 통한 간단한 실시간 데이터베이스 모니터링 및 스케줄링

黄舟
黄舟원래의
2016-12-14 13:17:061283검색

구현할 기능: user 테이블을 모니터링합니다. 새 레코드가 추가되면 user2 테이블에 추가합니다. (관련 데이터 처리 등 실제 적용은 좀 더 심도있게 가능합니다.)

다음은 PHP 코드(dbtest.php)입니다.

코드는 다음과 같습니다.
!#/usr/local /php/bin/php
mysql_connect('localhost', 'username', 'password')
mysql_select_db("test"); 🎜>echo 'PID: '.posix_getpid().' '; //현재 프로세스 PID(리눅스에서)
$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 = "`user`에서 `name`,`age`를 선택하세요. WHERE `id`='{$i}' LIMIT 1"
$result = mysql_query($sql); 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 ; 명령 경로와 while(1) 및 sleep(3)은 일반적인 PHP 코드 작성 방법입니다.
그냥 쉘 명령어인 php dbtest.php를 통해 실행해봤습니다. 일반적인 상황에서는 CPU 사용량이 0%이고 메모리는 1%입니다.
실제 애플리케이션에서는 백그라운드에서 실행할 수 있습니다.
php dbtest.php &

bg 1

PS: & 명령은 여러 곳에서 명확하지 않거나 심지어 잘못되었습니다. 실제로 실행하지 않고 프로그램을 백그라운드에 두는 것뿐입니다!
그런데 리눅스의 프론트엔드와 백엔드 실행에 관련된 명령어들을 정리하고 복습해보겠습니다

명령어의 프론트엔드와 백엔드 상태 사용법

& 백그라운드 일시 정지가 추가되었습니다 명령 뒤

bg 백그라운드 실행 뒤에 작업 번호가 옵니다.

fg 포그라운드 실행 뒤에 작업 번호가 옵니다.

Ctrl+Z 백그라운드 일시 중지(키 조합)

jobs (전체 직업번호 보기) 명령어

더보기 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.