我有一个cron脚本,可以为网站提供新内容,并将需要的条目保存到数据库中。条目被md5哈希和验证,以防止欺骗。但是我注意到,有时候有两个事件同时运行,并且哈希方法在这个时候失败了,因为我在插入到DB中的每个pregmatches中有两个。防止PHP脚本同时运行
有人可以推荐最好的方法来防止这种情况在将来发生。
我已经考虑通过检查日志文件来锁定执行,但在这种情况下,如果中间存在错误,脚本可能会永久锁定。
我正在研究设置$ _SESSION ['lock'],所以在这种情况下,如果它锁定并中断,会话将在某个时间点过期。
任何想法?
可能使用你有锁定的想法,但包括LastActive时间戳?然后您的脚本可以检查启动时的最后活动时间戳,如果超过10分钟左右,请解锁并继续。 –
一个基于Memcache的互斥体系。到期内置:) –
当你的脚本启动时,你可以从'ps'查看是否有一个同名脚本已经在运行。如果是,请退出新实例。 – halfer