ホームページ >php教程 >PHP开发 >PHP CLI を介したシンプルなリアルタイムデータベースの監視とスケジューリング

PHP CLI を介したシンプルなリアルタイムデータベースの監視とスケジューリング

黄舟
黄舟オリジナル
2016-12-14 13:17:061359ブラウズ

実装する機能: userテーブルを監視し、新しいレコードが追加された場合はuser2テーブルに追加します。 (実際のアプリケーションは、データの関連処理など、より詳細なものになります)

以下は PHP コード (dbtest.php) です。

コードは次のとおりです:
!#/usr/local/php /bin/php
mysql_connect('localhost', 'username', 'password');
echo 'PID: '.posix_getpid()';プロセス PID (Linux の場合)
$ old_id = 0;
while (1)
$sql = "SELECT `id` FROM `user` ORDER BY `id` DESC LIMIT 1"; );
$item = mysql_fetch_assoc( $result);
$new_id = $item['id'];
$i>$old_id && $old_id! =0; $i--)
{
$sql = "SELECT `name`,`age` FROM `user` WHERE `id`='{$i}' LIMIT 1"; );
$item = mysql_fetch_assoc( $result);
$name = $item['name'];
$values_arr[] = " , '{$age}') ";
}
if (!emptyempty($values_arr))
{
$values_str = implode(',', $values_arr);
$sql = "`user2`(` name`, `age`) VALUES {$values_str}";
mysql_query($sql);
}
$old_id = max($old_id, $new_id);
sleep(3); // 3 の後に次のループに入る秒
}

ビジネス プロセスはすべきです 言うことはありませんが、注意すべき点がいくつかあります:
最初の行は PHP CLI モードで追加する必要があるコマンド パスであり、while(1) があります。残りは通常の PHP コード記述メソッドです。
シェル コマンド php dbtest.php を使用して実行してください。通常の状況では、CPU 使用率は 0%、メモリは 1% です。
実際のアプリケーションでは、バックグラウンドで実行できます:
php dbtest.php &

bg 1

追記: & コマンドは多くの場所で不明瞭であったり、間違っていたりします。実際にプログラムを実行せずに、プログラムをバックグラウンドに置くだけです。
ところで、Linuxの表裏操作に関わるコマンドをまとめておさらいしてみましょう

コマンドの表裏ステータスの使い方

&コマンドの後にバックグラウンドポーズが追加されます

bgバックグラウンド実行の後には、ジョブ番号

fg フォアグラウンド実行の後にジョブ番号が続きます

Ctrl+Z バックグラウンドで一時停止 (キーの組み合わせ)

jobs (すべてのジョブ番号を表示) コマンド

その他の関連記事については、php 中国語 Web サイト ( www.php.cn)!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。