编程语言
首页 > 编程语言> > PHP 5.5 Opcache何时才根据revalidate_freq设置检查文件时间戳

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