PHP 5.5 Opcache何时才根据revalidate_freq设置检查文件时间戳
作者:互联网
有人在之前/其他地方对此表示歉意,但我找不到答案.
部署后的几分钟内我们遇到了一些问题,我们认为它们与Opcache有关.在我们的实时设置中,我们具有以下Opcache设置:
opcache.revalidate_freq=60
opcache.validate_timestamps=1
PHP会执行以下哪项操作?
>当PHP需要一个文件时,它是否检查自从上次生成文件的新缓存以来已经60秒了,是否还需要再为该请求生成一个新文件呢?
>或者它是否以某种形式的计时器(或其他形式)运行,其中60秒与上一次需要文件的时间无关?
我希望选项1可以解决60秒钟左右的问题,因为每次将文件部署到交替的A或B目录时,文件的文件路径都不相同.
我希望这是有道理的?谢谢你的帮助.
解决方法:
因此,从PHP manual开始
How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.
因此,正在发生的事情是您正在更新文件,但是您的指令说,从更新文件到操作缓存创建新操作码之间的时间最长为60秒.
validate_timestamps有答案.因为您要手动重新验证文件,所以可以执行此操作
When this directive is disabled, you must reset OPcache manually via opcache_reset(), opcache_invalidate() or by restarting the Web server for changes to the filesystem to take effect.
标签:opcache,php 来源: https://codeday.me/bug/20191029/1958069.html