我目前正在开发一个网站。我想缓存API的结果但是API很慢,所以我必须处理并发的PHP请求以获得相同的结果。
当PHP收集某个ID的API结果时,我希望下一个相同ID的PHP请求等待第一个完成并只读取缓存的值。
我目前的解决方案是在缓存中添加一个空值(如果值为空,则新的PHP请求将只是睡眠和重新检查)但有时它不起作用。
还有其他或更好的方法吗?
答案 0 :(得分:0)
考虑使用PECL Sync库和SyncReaderWriter类提供的同步,或者只使用简单的文件锁定系统。
如果你想要工作解决方案,我已经创建了PHP缓存库来同步读/写过程,特别是对于你上面描述的任务。
我认为您可能会发现它很有用,请在此处查看:https://github.com/tztztztz/php-no-slam-cache