aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Feed.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2023-08-03 21:56:35 +0200
committerGravatar GitHub <noreply@github.com> 2023-08-03 21:56:35 +0200
commit4039f6c9a4bc1636d298d0c05c678f4e1215e846 (patch)
tree49e06cebd6192a525bad249084bf64aa2cc74c9a /app/Models/Feed.php
parente7689459f25663e00b4f5814a3608872ff36b582 (diff)
Fix cache refresh (#5562)
Improvement of https://github.com/FreshRSS/FreshRSS/pull/4422 The main problem was due to `touch()` not automatically clearing the file status cache, and requiring a call to `clearstatcache()`. Example: ``` php > touch('/tmp/touch.txt'); php > echo date('c', filemtime('/tmp/touch.txt')); 2023-08-03T17:27:43+02:00 php > touch('/tmp/touch.txt'); php > echo date('c', filemtime('/tmp/touch.txt')); 2023-08-03T17:27:43+02:00 php > clearstatcache(true, '/tmp/touch.txt'); php > echo date('c', filemtime('/tmp/touch.txt')); 2023-08-03T17:28:21+02:00 ```
Diffstat (limited to 'app/Models/Feed.php')
-rw-r--r--app/Models/Feed.php4
1 files changed, 3 insertions, 1 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php
index 2baee9e0d..80d4e4580 100644
--- a/app/Models/Feed.php
+++ b/app/Models/Feed.php
@@ -859,7 +859,9 @@ class FreshRSS_Feed extends Minz_Model {
/** @return int|false */
public function cacheModifiedTime() {
- return @filemtime(FreshRSS_Feed::cacheFilename($this->url, $this->attributes(), $this->kind));
+ $filename = FreshRSS_Feed::cacheFilename($this->url, $this->attributes(), $this->kind);
+ clearstatcache(true, $filename);
+ return @filemtime($filename);
}
public function lock(): bool {