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

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

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

$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数据库操作类,实现增删改查

发表评论

vidnami 在线视频创作工具--做海外推广营销视频必备工具

image.png


我们的折扣优惠是向观众推广Vidnami的绝妙方式。他们将即时访问 25% 的 Vidnami, 再加上我们的视频营销包免费。最棒的是,您将获得所有销售额的50%!

https://www.vidnami.com/c/Mr_xiaoxiao-vn-buy-discount 

期待各位的加入,让原创发挥活力,让阅读更有价值!登录注册
登录
用户名
密码
注册
用户名
密码
确认密码
邮箱
验证码
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱