在我的系统中,我已安排PHP作业每分钟运行一次.
现在我希望如果此作业的一个实例正在运行并且需要超过1分钟,则每分钟后启动的新实例会检查是否有任何先前的实例正在运行并且有任何先前的实例正在运行,新的实例将自行终止.我正在尝试使用system()命令,但无法弄明白.
任何sugestions
解决方法:
在锁定文件上使用独占文件锁.一旦进程结束执行,锁就会自动释放.
<?php
$fp = fopen("/var/tmp/your.lock", "w");
if (!flock($fp, LOCK_EX|LOCK_NB)) { // try to get exclusive lock, non-blocking
die("Another instance is running");
}
[... continue with the script ...]
见:http://www.php.net/manual/en/function.flock.php