PHP教程:巧用文件锁功能,防止脚本程序同一时间内重复执行而进入卡死状态

最近在做一些插件,需要到发布更新文章的时候重新生成数据。我们知道很多人使用了火车头发布文章,同一时间内发布连续多篇,就会使得插件更新数据函数多次运行而导致服务器卡顿。

所以需要用到文件锁,然后想到.lock的文件使用,方便快捷。

PHP教程:巧用文件锁功能,防止脚本程序同一时间内重复执行而进入卡死状态-第1张-菜鸟博客

$lockFile = '.lock';
//如果锁文件存在时间过长删除锁文件
if(file_exists($lockFile)){
if(time()-filemtime($lockFile) > 600){
@unlink($lockFile);
}
}
//如果锁文件存在,程序已经运行.
if(file_exists($lockFile)){
echo "Is already running,please unlock! \n";
exit;
}

//加锁,创建锁文件
touch($lockFile);
if(preg_match('/linux/i',PHP_OS) || preg_match('/Unix/i',PHP_OS)){
chmod($lockFile, 0777);
}
//您的待执行代码
print_r(PHP_OS);


//***************************************

//解锁,删除锁文件
unlink($lockFile);


猜你喜欢

PHP教程:循环每4个li包裹一个div

PHP教程:循环每4个li包裹一个div

有的时候我们需要做的是每4个循环在数据的输出周围包装一个div。正常foreach循环是这样的:<?php  foreach ($articles as ...

PHP教程:在foreach循环文章列表中插入随机广告位

PHP教程:在foreach循环文章列表中插入随机广告位

之前做了一个插件zblogphp插件:广告伪装成文章插件 ,但其实插件还是有些是实现不了的。那么怎么办呢?最好最快的方法,修改主题模板文件,在循环列表加入判断加入相关广告代码。那样效果是最好的。$i&...

发表评论