在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
task1.php <?php error_reporting(E_ERROR | E_WARNING | E_PARSE); // redis $redis = new Redis(); $redis->pconnect(REDIS_HOST, REDIS_PORT); $redis->auth(REDIS_PASS); // task while (true) { $task = $redis->rPop('mytask1'); if ($task !== false) { // todo continue; } sleep(1); } ?>
task_monitor.php <?php error_reporting(E_ERROR | E_WARNING | E_PARSE); // 任务数组 $tasks = array( 'task1.php', 'task2.php', 'task3.php', 'task4.php', 'task5.php' ); // 查找正在运行的任务 $cmd = "ps -ef | grep 'task'"; $res = shell_exec($cmd); $all = explode("\n", $res); $running = array(); for($i=0; $i<count($all); $i++){ $array = explode("php ", $all[$i]); $p = trim($array[1]); if(!empty($p)) { $p = str_replace('/mytask/', '', $p); $running[] = $p; } } echo(date('Y-m-d H:i:s')."\n"); $date=date('YmdHis'); // 查找不在运行的任务并启动任务 for($i=0; $i<count($tasks); $i++){ if(in_array($tasks[$i], $running)) { echo($tasks[$i]." is running\n"); } else { echo($tasks[$i]." is dead\n"); $cmd = "nohup /usr/bin/php /mytask/".$tasks[$i]." >/mytask/nohup/mytask.log 2>&1 &"; $res = shell_exec($cmd); } } echo("\n"); ?>
|
2022-08-18
2022-08-17
2022-11-06
2022-08-17
2022-07-18
请发表评论