実装する機能: userテーブルを監視し、新規レコードが追加された場合はuser2テーブルに追加します。 (実際のアプリケーションでは、データの関連処理など、より詳細な処理が可能です)
以下は PHP コード (dbtest.php) です。
コピーcode コードは次のとおりです:
!#/usr/local/php/bin/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` ORDER BY `id` DESC LIMIT 1";
$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}' LIMIT 1 ";
$result = mysql_query($sql);
$item = mysql_fetch_assoc($result);
$name = $item['name'];
$age = $item['年齢'];
$ value_arr[] = "('{$name}', '{$age}')"
}
if (!emptyempty($values_arr))
{
$values_str = implode( ',', $values_arr);
$sql = "`user2`(`name`, `age`) VALUES {$values_str}";
}
$old_id = max($old_id, $new_id);
sleep(3); // 3 秒後に次のサイクルに入る
}
ビジネス プロセスについては何も言う必要はありませんが、注意すべき点がいくつかあります:
&
コマンドの後にバックグラウンド一時停止が追加されます バックグラウンド実行の後にジョブ番号が続く
fg フロントデスクの実行に続いてジョブ番号が続きますCtrl Z バックステージ一時停止 (キーの組み合わせ)
jobs (すべてのジョブ番号を表示) コマンド