与cronjob一起连续运行的php脚本

时间:2011-11-22 22:14:35

标签: php shell crontab

我有3个脚本可以做一些事情。 我想连续并同时运行它们。

我们举个例子说: 第一个脚本需要30分钟才能完成。 第二 - 20分钟。 第三 - 5分钟。

所以我需要他们每个人在完成后立即运行。 3个脚本在同一个DB中进行UPDATE,但它们需要单独工作。 他们可以一次跑,但不是几次(我的英语很糟糕,抱歉)。 让我们用例子来解释我的意思:

firstScript.php is running
secondScript.php is running
thirdScript.php is running

firstScript.php trying to start but it still running. Wait.(till finish)
可能有些shell脚本会做这个工作,但是怎么做?

2 个答案:

答案 0 :(得分:3)

创建一个带有一个参数的bash脚本,并让它执行以下操作:

if [ -f /tmp/$1 ]
then
    echo "Script already running"
else
    touch /tmp/$1
    php $1
    rm /tmp/$1
fi

设置一个cron来运行这个脚本并将它传递给你想要运行的php脚本的名称。

答案 1 :(得分:0)

你可以在php脚本死之前执行shell命令。示例:

while($i < 1000)
{
$i++;
}
shell_exec("bin/php.exe some_script.php");

如果您正在使用共享主机帐户,则可能无法解决安全问题。 请注意,需要为您的服务器编辑“bin / php.exe”,指向安装php的位置。