Zend_Search_Lucence 中的文件锁定问题_PHP教程
程序员文章站
2024-02-07 18:24:46
...
PHP 中的文件锁定功能非常的不稳定。特别是和PHP 的版本 和 平台也有很大的关系。今天看了Zend_Search_Lucence 中的解决方案是这样的:
先flock 一个文件,lock的模式是:flock($file, LOCK_EX | LOCK_NB),如果下一个进程再次访问 $file, 那么因为无法再获取 flock 的锁定了,所以会返回一个false,代表文件被锁定了,不能再进行访问了。
在 Zend_Search_Lucence 锁定的时候主要是:写索引 读取索引 优化索引。
关于 LOCK_NB :
在linux 下面支持的比较好,但是windows 上,直到 php 5.2.1 才支持。
所以,要使用 Zend_Search_Lucence 最好 PHP 5.2.1 以上的版本。
如果版本低于 PHP 5.2.1,进程会一直等待下去(因为windows下, 低于PHP 5.2.1 版本不支持非阻塞模式的锁定)。
关于更新索引:更新索引的时候,索引经常会被锁定。所以不推荐即时的更新索引,建议晚*问量比较小的时候再去更新索引。
上一篇: 一些PHP写的小东西
推荐阅读
-
PHP中file_exists使用中遇到的问题小结,file_exists小结_PHP教程
-
php中__destruct与register_shutdown_function执行的先后顺序问题,destruct_PHP教程
-
PHP中preg_match函数正则匹配的字符串长度问题,phppreg_match_PHP教程
-
用PHP实现动态产生XML文件以及从XML文件中抽取数据转化成HTML的小程序。。。不用DOM的。。_PHP教程
-
php中设置index.php文件为只读的方法_PHP教程
-
PHP中Session引起的脚本阻塞问题解决办法_PHP教程
-
浅析php中如何在有限的内存中读取大文件_PHP教程
-
php遍历目录,生成目录下每个文件的md5值并写入到结果文件中_PHP教程
-
php提取csv格式文件中的字符串出现的问题及解决办法
-
PHP应用中的八种常见文件操作方式_PHP教程