晓夏

北漂的女孩

Good Luck To You!

shell模拟多进程跑php

浏览量:585

#!/bin/bash
#无线缘分圈评论异步执行代码

# 开始时间
start_time=`date +'%s'`

# 脚本执行的时间间隔
script_time=${1:-1}

cur_dir=$(cd `dirname $0`; pwd) #获取当前路径
cur_file="$cur_dir/check_comment_wireless.sh"
php_file="$cur_dir/check_comment_wireless.php"
cpucount=`cat /proc/cpuinfo|grep processor|wc -l` #获取cpu的核心数
echo "$cpucount 核心"

# 执行时间
timediff=0
function get_timediff(){
    now_time=`date +'%s'`
    let "timediff=$now_time-$start_time"
    return 0
}

echo "开始执行"

#进程的代码Z(进程执行 60秒后自动结束)
while [ $timediff -lt 55 ]
do
    #记录本次循环开始时间
    # echo "Queue filter start - `date +'%Y-%m-%d %T'`"
    num="`ps aux | grep "$php_file" | grep -v grep | wc -l`" #获取php进程数
    if [ $num -lt $cpucount ];then   #防止php进程数大于cpu的进程数
        #执行任务
        /usr/local/php/bin/php $php_file &
    else
        echo 'php进程已满'
        sleep 0.5
    fi
    echo $num
    sleep $script_time
    # echo "Queue filter end - `date +'%Y-%m-%d %T'`"
    
    #计算和时间间隔的差距
    get_timediff;
    echo $timediff
    #exit 0
done

echo "执行完毕"
exit 0


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。