>  기사  >  백엔드 개발  >  click.simba.taobao.com PHP CLI를 통한 간단한 실시간 데이터베이스 모니터링 및 예약

click.simba.taobao.com PHP CLI를 통한 간단한 실시간 데이터베이스 모니터링 및 예약

WBOY
WBOY원래의
2016-07-29 08:40:212540검색

구현될 기능: 사용자 테이블을 모니터링합니다. 새 레코드가 추가되면 이를 user2 테이블에 추가합니다. (관련 데이터 처리 등 실제 응용은 좀 더 심도있게 할 수 있습니다.)
다음은 PHP 코드(dbtest.php)입니다.

코드 복사 코드는 다음과 같습니다:


!#/usr/local/php/bin/php
mysql_connect('localhost', 'username', ' 비밀번호');
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); = mysql_fetch_assoc($result) ;
$new_id = $item['id'];
$values_arr = array()
for ($i>$old_id && $old_id !=0; $i --)
{
$sql = "`user`에서 `name`,`age`를 선택합니다. 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 코드 작성 방법입니다.
쉘 명령인 php dbtest.php를 통해 실행할 수 있습니다. 일반적인 상황에서는 CPU 사용량이 0%이고 메모리는 1%입니다.
실제 애플리케이션에서는 백그라운드에서 실행할 수 있습니다.

php dbtest.php &
bg 1
PS: & 명령은 여러 곳에서 명확하지 않거나 심지어 잘못되었습니다. 실제로 실행하지 않고 프로그램을 백그라운드에 두는 것뿐입니다!
참고로 리눅스 프론트와 백스테이지의 관련 명령어를 복습하세요

명령어의 앞, 뒤 상태에서


&
>bg Background Run 다음에 작업 번호

fg Foreground Run 다음에 작업 번호

Ctrl Z Background Pause(키 조합)

jobs(모든 작업 번호 보기) 명령

위 내용은 click.simba.taobao.com의 내용을 포함하여 PHP CLI를 통한 click.simba.taobao.com의 간단한 실시간 데이터베이스 모니터링 및 스케줄링을 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다. .

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