Chinaunix

标题: php进程锁有没有现成的解决方法 [打印本页]

作者: 忧郁的葡萄    时间: 2009-07-18 16:59
标题: php进程锁有没有现成的解决方法
现在我是用了文件锁,如下,感觉不太好,当进程挂了重启时要先手工清除锁文件,才能启动进程
因此想改成进程锁,有没有好点的办法   ?
$LOCK_FILE="/tmp/test.running.lock";
    if (file_exists($LOCK_FILE))
    {
        echo "LOCK_FILE exsits,exit";
        exit(1);
    }
    else
    {
        system("/bin/touch $LOCK_FILE", $retval);
    }
作者: 网鬼    时间: 2009-07-19 05:11
你这是要实现什么功能呢?
你这样似乎程序就只能执行一次,以后会是输出LOCK_FILE exsits,exit
作者: 忧郁的葡萄    时间: 2009-07-20 19:42
我要实现同一时间只能有一个进程在跑,但是我又不想用文件锁的方式实现
作者: bs    时间: 2009-07-20 20:26
应用PHP的共享内存,设置锁定状态+锁定过期
作者: 网鬼    时间: 2009-07-20 21:35
原帖由 bs 于 2009-7-20 20:26 发表
应用PHP的共享内存,设置锁定状态+锁定过期

PHP共享内存怎么搞?
作者: bs    时间: 2009-07-20 23:00
原帖由 网鬼 于 2009-7-20 21:35 发表

PHP共享内存怎么搞?



shmop,网上好多哇
作者: 网鬼    时间: 2009-07-20 23:43
标题: 回复 #6 bs 的帖子
看了下,确实不错
作者: blackbox    时间: 2009-07-24 11:14
建议使用 lockf 命令。

lockf - execute a command while holding a file lock
作者: xinglu1983    时间: 2009-07-24 13:36
原帖由 bs 于 2009-7-20 23:00 发表



shmop,网上好多哇

这个shmop,或者sysvshmop,跟memcache比,在数据存放作用方面有什么区别呢?
作者: bs    时间: 2009-07-24 15:22
原帖由 xinglu1983 于 2009-7-24 13:36 发表

这个shmop,或者sysvshmop,跟memcache比,在数据存放作用方面有什么区别呢?



http://bbs3.chinaunix.net/viewth ... p%3Bfilter%3Ddigest
作者: 南无小和尚    时间: 2009-07-24 15:23
没用过学习下。
作者: flynetcn    时间: 2009-07-27 18:24
原帖由 xinglu1983 于 2009-7-24 13:36 发表

这个shmop,或者sysvshmop,跟memcache比,在数据存放作用方面有什么区别呢?

共享内存指的是本机的多个进程共用一块内存空间,比如动态链接库的应用。

memcache是分布式的网络存储。速度上当然是共享内存快,没有网络开销。

共享内存处理起来也灵活些。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2