|
发表于 2009-8-4 09:59:28
|
显示全部楼层
第一种方法是锁文件:
1. <?php
2. $ltime = time();
3. if (file_exists('lock.php')){
4. if ($ltime - filectime('lock.php') < 1800) {
5. #logs("busy");
6. exit;
7. } else {
8. @unlink('lock.php');
9. }
10. }
11. $fp = fopen('lock.php','w+');
12. if (!$fp){
13. exit;
14. }
15. @flock($fp,2);
16. @fwrite($fp,$ltime);
17. @fclose($fp);
18.
19. do sth..
20. @unlink('lock.php');
21. ?>
第二种方法:
创建一个扩展
在PHP_MINIT中创建队列,在PHP_RINIT初始化并设置本次请求的队列状况,在PHP_RSHUTDOWN中释放资源。
队列要在web服务器主进程中创建,并在主进程的PHP_MSHUTDOWN中清理。注意并发状态,尤其是Apache2中,需要使用TSRM.h来保证队列状态的线程安全,通讯随便使用文件、共享内存都可以。 |
评分
-
查看全部评分
|