在自己的VPS上部署了淘宝助手PHP代码,想每分钟去扫一下自己充值店的订单并发相应的邮件提醒,但不知怎么原因经常前一分钟的任务卡在那里还没有完成下一分钟的任务就已经开始,所以经常导致有多个扫描进程卡在那里,占用了偶稀有的VPS系统内存。
为此想到了PHP的flock函数,找到测试代码并改写如下用于测试:
<?php $file = fopen("test.txt", "w+"); // 排它性的锁定 if (flock($file, LOCK_EX | LOCK_NB)) { fwrite($file, "Write something"); sleep(10); // release lock flock($file, LOCK_UN); echo 'Done'; } else { echo "Error locking file!"; } fclose($file); ?>
然后在Chrome浏览器里打开两个Tab分别浏览这个PHP文件,但执行结果总是都走fwrite那条线,折腾了很久总是不得要领,还有网上找了好多资料。
今天总算在这里找到解决办法,其实上面的代码已经解决了问题,只是使用的Chrome浏览器“请求两个相同页面的时候,其实是让一个去请求,另一个想坐享其成,所以产生了差异”,按前面看到的办法“用ctrl+F5强制刷新两个页面发起请求效果就出来了”。
相关日志
Tags: PHP
技术文章啊